Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

proc: prevent stacking filesystems on top

This prevents stacking filesystems (ecryptfs and overlayfs) from using
procfs as lower filesystem. There is too much magic going on inside
procfs, and there is no good reason to stack stuff on top of procfs.

(For example, procfs does access checks in VFS open handlers, and
ecryptfs by design calls open handlers from a kernel thread that doesn't
drop privileges or so.)

Signed-off-by: Jann Horn <jannh@google.com>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Jann Horn and committed by
Linus Torvalds
e54ad7f1 2dcd0af5

+7
+7
fs/proc/root.c
··· 121 121 if (IS_ERR(sb)) 122 122 return ERR_CAST(sb); 123 123 124 + /* 125 + * procfs isn't actually a stacking filesystem; however, there is 126 + * too much magic going on inside it to permit stacking things on 127 + * top of it 128 + */ 129 + sb->s_stack_depth = FILESYSTEM_MAX_STACK_DEPTH; 130 + 124 131 if (!proc_parse_options(options, ns)) { 125 132 deactivate_locked_super(sb); 126 133 return ERR_PTR(-EINVAL);