opnsense-src/sys/fs
Konstantin Belousov 7359fdcf5f Allow some dotdot lookups in capability mode.
If dotdot lookup does not escape from the file descriptor passed as
the lookup root, we can allow the component traversal.  Track the
directories traversed, and check the result of dotdot lookup against
the recorded list of the directory vnodes.

Dotdot lookups are enabled by sysctl vfs.lookup_cap_dotdot, currently
disabled by default until more verification of the approach is done.

Disallow non-local filesystems for dotdot, since remote server might
conspire with the local process to allow it to escape the namespace.
This might be too cautious, provide the knob
vfs.lookup_cap_dotdot_nonlocal to override as well.

Idea by:	rwatson
Discussed with:	emaste, jonathan, rwatson
Reviewed by:	mjg (previous version)
Tested by:	pho (previous version)
Sponsored by:	The FreeBSD Foundation
MFC after:	2 week
Differential revision:	https://reviews.freebsd.org/D8110
2016-11-02 12:43:15 +00:00
..
autofs Implement autofs_print(), for improved debugging experience. 2016-08-11 14:27:23 +00:00
cd9660 Use buffer pager for cd9660. 2016-10-28 11:46:39 +00:00
cuse Prevent cuse4bsd.ko and cuse.ko from loading at the same time by 2016-09-23 07:41:23 +00:00
deadfs Style changes for deadfs: 2014-10-15 13:22:33 +00:00
devfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
ext2fs ext2fs: Add defines for some missing ext4 feature flags. 2016-08-06 17:24:35 +00:00
fdescfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
fifofs Rewrite sigdeferstop(9) and sigallowstop(9) into more flexible 2016-06-26 20:07:24 +00:00
fuse If a local (AF_LOCAL, AF_UNIX) socket creation (bind) is attempted 2016-05-18 22:23:20 +00:00
msdosfs Use buffer pager for msdosfs. 2016-10-28 11:46:15 +00:00
nandfs Fix panic() message reporting ufs instead of nandfs 2016-10-13 19:33:07 +00:00
nfs Update the nfsstats structure to include the changes needed by 2016-08-12 22:44:59 +00:00
nfsclient Update the nfsstats structure to include the changes needed by 2016-08-12 22:44:59 +00:00
nfsserver Allow some dotdot lookups in capability mode. 2016-11-02 12:43:15 +00:00
nullfs Change the getnewvnode(9) tag for nullfs from "null" to "nullfs". 2016-09-15 13:57:37 +00:00
procfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
pseudofs Remove Giant asserts. Update comment. 2016-08-03 08:57:15 +00:00
smbfs Replace all remaining calls to vprint(9) with vn_printf(9), and remove 2016-08-10 16:12:31 +00:00
tmpfs Convert another tmpfs assert into runtime check. 2016-08-10 13:50:21 +00:00
udf Remove drop/reacquire of Giant around geom calls for cd9660 and udf. 2016-05-22 18:16:25 +00:00
unionfs Replace all remaining calls to vprint(9) with vn_printf(9), and remove 2016-08-10 16:12:31 +00:00