summaryrefslogtreecommitdiff
path: root/fs/proc
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2013-03-26 02:57:10 (GMT)
committerEric W. Biederman <ebiederm@xmission.com>2013-08-26 18:36:58 (GMT)
commitaee1c13dd0f6c2fc56e0e492b349ee8ac655880f (patch)
tree29d0afcbf37968e8fccd1dfff76deadf86c7a338 /fs/proc
parent5ff9d8a65ce80efb509ce4e8051394e9ed2cd942 (diff)
downloadlinux-fsl-qoriq-aee1c13dd0f6c2fc56e0e492b349ee8ac655880f.tar.xz
proc: Restrict mounting the proc filesystem
Don't allow mounting the proc filesystem unless the caller has CAP_SYS_ADMIN rights over the pid namespace. The principle here is if you create or have capabilities over it you can mount it, otherwise you get to live with what other people have mounted. Andy pointed out that this is needed to prevent users in a user namespace from remounting proc and specifying different hidepid and gid options on already existing proc mounts. Cc: stable@vger.kernel.org Reported-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'fs/proc')
-rw-r--r--fs/proc/root.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/proc/root.c b/fs/proc/root.c
index 229e366..38bd5d4 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -110,7 +110,8 @@ static struct dentry *proc_mount(struct file_system_type *fs_type,
ns = task_active_pid_ns(current);
options = data;
- if (!current_user_ns()->may_mount_proc)
+ if (!current_user_ns()->may_mount_proc ||
+ !ns_capable(ns->user_ns, CAP_SYS_ADMIN))
return ERR_PTR(-EPERM);
}