From: Djalal Harouni <tixxdz@opendz.org> To: "Eric W. Biederman" <ebiederm@xmission.com>, Kees Cook <keescook@chromium.org>, Al Viro <viro@zeniv.linux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, Linus Torvalds <torvalds@linux-foundation.org>, Ingo Molnar <mingo@kernel.org>, "Serge E. Hallyn" <serge.hallyn@ubuntu.com>, Cyrill Gorcunov <gorcunov@openvz.org>, David Rientjes <rientjes@google.com>, LKML <linux-kernel@vger.kernel.org>, linux-fsdevel@vger.kernel.org, kernel-hardening@lists.openwall.com Cc: tixxdz@gmail.com, Djalal Harouni <tixxdz@opendz.org> Subject: [PATCH v2 7/9] procfs: add permission checks on the file's opener of /proc/*/personality Date: Tue, 1 Oct 2013 21:26:16 +0100 [thread overview] Message-ID: <1380659178-28605-8-git-send-email-tixxdz@opendz.org> (raw) In-Reply-To: <1380659178-28605-1-git-send-email-tixxdz@opendz.org> If current's cred have changed between ->open() and ->read(), then call proc_allow_access() to check if the original file's opener had enough permissions to access the /proc/*/personality entry during ->read(). Cc: Kees Cook <keescook@chromium.org> Cc: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Djalal Harouni <tixxdz@opendz.org> --- fs/proc/base.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index d4b604d..77f5b84 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2647,11 +2647,23 @@ static const struct file_operations proc_projid_map_operations = { static int proc_pid_personality(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { + struct file *file = m->private; + const struct cred *fcred = file->f_cred; + int same_cred = proc_same_open_cred(fcred); int err = lock_trace(task); - if (!err) { - seq_printf(m, "%08x\n", task->personality); - unlock_trace(task); + if (err) + return err; + + if (!same_cred && + !proc_allow_access(fcred, task, PTRACE_MODE_ATTACH)) { + err = -EPERM; + goto out; } + + seq_printf(m, "%08x\n", task->personality); + +out: + unlock_trace(task); return err; } -- 1.7.11.7
WARNING: multiple messages have this Message-ID (diff)
From: Djalal Harouni <tixxdz@opendz.org> To: "Eric W. Biederman" <ebiederm@xmission.com>, Kees Cook <keescook@chromium.org>, Al Viro <viro@zeniv.linux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, Linus Torvalds <torvalds@linux-foundation.org>, Ingo Molnar <mingo@kernel.org>, "Serge E. Hallyn" <serge.hallyn@ubuntu.com>, Cyrill Gorcunov <gorcunov@openvz.org>, David Rientjes <rientjes@google.com>, LKML <linux-kernel@vger.kernel.org>, linux-fsdevel@vger.kernel.org, kernel-hardening@lists.openwall.com Cc: tixxdz@gmail.com, Djalal Harouni <tixxdz@opendz.org> Subject: [kernel-hardening] [PATCH v2 7/9] procfs: add permission checks on the file's opener of /proc/*/personality Date: Tue, 1 Oct 2013 21:26:16 +0100 [thread overview] Message-ID: <1380659178-28605-8-git-send-email-tixxdz@opendz.org> (raw) In-Reply-To: <1380659178-28605-1-git-send-email-tixxdz@opendz.org> If current's cred have changed between ->open() and ->read(), then call proc_allow_access() to check if the original file's opener had enough permissions to access the /proc/*/personality entry during ->read(). Cc: Kees Cook <keescook@chromium.org> Cc: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Djalal Harouni <tixxdz@opendz.org> --- fs/proc/base.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index d4b604d..77f5b84 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2647,11 +2647,23 @@ static const struct file_operations proc_projid_map_operations = { static int proc_pid_personality(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task) { + struct file *file = m->private; + const struct cred *fcred = file->f_cred; + int same_cred = proc_same_open_cred(fcred); int err = lock_trace(task); - if (!err) { - seq_printf(m, "%08x\n", task->personality); - unlock_trace(task); + if (err) + return err; + + if (!same_cred && + !proc_allow_access(fcred, task, PTRACE_MODE_ATTACH)) { + err = -EPERM; + goto out; } + + seq_printf(m, "%08x\n", task->personality); + +out: + unlock_trace(task); return err; } -- 1.7.11.7
next prev parent reply other threads:[~2013-10-01 20:34 UTC|newest] Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-10-01 20:26 [PATCH v2 0/9] procfs: protect /proc/<pid>/* files with file->f_cred Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 1/9] procfs: add proc_same_open_cred() to check if the cred have changed Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 2/9] procfs: add proc_allow_access() to check if file's opener may access task Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-02 1:36 ` Andy Lutomirski 2013-10-02 1:36 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 14:55 ` Djalal Harouni 2013-10-02 14:55 ` [kernel-hardening] " Djalal Harouni 2013-10-02 16:44 ` Andy Lutomirski 2013-10-02 16:44 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 14:36 ` Djalal Harouni 2013-10-03 14:36 ` [kernel-hardening] " Djalal Harouni 2013-10-03 15:12 ` Andy Lutomirski 2013-10-03 15:12 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 15:12 ` Andy Lutomirski 2013-10-03 19:29 ` Djalal Harouni 2013-10-03 19:29 ` [kernel-hardening] " Djalal Harouni 2013-10-03 19:29 ` Djalal Harouni 2013-10-03 19:37 ` Andy Lutomirski 2013-10-03 19:37 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 19:37 ` Andy Lutomirski 2013-10-03 20:13 ` Djalal Harouni 2013-10-03 20:13 ` [kernel-hardening] " Djalal Harouni 2013-10-03 20:13 ` Djalal Harouni 2013-10-03 21:09 ` Andy Lutomirski 2013-10-03 21:09 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 21:09 ` Andy Lutomirski 2013-10-04 8:59 ` Djalal Harouni 2013-10-04 8:59 ` [kernel-hardening] " Djalal Harouni 2013-10-04 8:59 ` Djalal Harouni 2013-10-04 15:40 ` Andy Lutomirski 2013-10-04 15:40 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 15:40 ` Andy Lutomirski 2013-10-04 18:23 ` Djalal Harouni 2013-10-04 18:23 ` [kernel-hardening] " Djalal Harouni 2013-10-04 18:23 ` Djalal Harouni 2013-10-04 18:34 ` Andy Lutomirski 2013-10-04 18:34 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 18:34 ` Andy Lutomirski 2013-10-04 19:11 ` Djalal Harouni 2013-10-04 19:11 ` [kernel-hardening] " Djalal Harouni 2013-10-04 19:11 ` Djalal Harouni 2013-10-04 19:16 ` Andy Lutomirski 2013-10-04 19:16 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 19:16 ` Andy Lutomirski 2013-10-04 19:27 ` Djalal Harouni 2013-10-04 19:27 ` [kernel-hardening] " Djalal Harouni 2013-10-04 19:27 ` Djalal Harouni 2013-10-04 19:32 ` Andy Lutomirski 2013-10-04 19:32 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 19:32 ` Andy Lutomirski 2013-10-04 19:41 ` Djalal Harouni 2013-10-04 19:41 ` [kernel-hardening] " Djalal Harouni 2013-10-04 19:41 ` Djalal Harouni 2013-10-04 22:17 ` Andy Lutomirski 2013-10-04 22:17 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 22:17 ` Andy Lutomirski 2013-10-04 22:55 ` Eric W. Biederman 2013-10-04 22:55 ` [kernel-hardening] " Eric W. Biederman 2013-10-04 22:55 ` Eric W. Biederman 2013-10-04 22:59 ` Andy Lutomirski 2013-10-04 22:59 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 22:59 ` Andy Lutomirski 2013-10-04 23:08 ` Andy Lutomirski 2013-10-04 23:08 ` [kernel-hardening] " Andy Lutomirski 2013-10-04 23:08 ` Andy Lutomirski 2013-10-05 0:35 ` Eric W. Biederman 2013-10-05 0:35 ` [kernel-hardening] " Eric W. Biederman 2013-10-05 0:35 ` Eric W. Biederman 2013-10-09 10:35 ` Djalal Harouni 2013-10-09 10:35 ` [kernel-hardening] " Djalal Harouni 2013-10-09 10:35 ` Djalal Harouni 2013-10-05 13:23 ` Djalal Harouni 2013-10-05 13:23 ` [kernel-hardening] " Djalal Harouni 2013-10-05 13:23 ` Djalal Harouni 2013-10-07 21:41 ` Andy Lutomirski 2013-10-07 21:41 ` [kernel-hardening] " Andy Lutomirski 2013-10-07 21:41 ` Andy Lutomirski 2013-10-09 10:54 ` Djalal Harouni 2013-10-09 10:54 ` [kernel-hardening] " Djalal Harouni 2013-10-09 10:54 ` Djalal Harouni 2013-10-09 11:15 ` Djalal Harouni 2013-10-09 11:15 ` [kernel-hardening] " Djalal Harouni 2013-10-09 11:15 ` Djalal Harouni 2013-10-09 17:27 ` Andy Lutomirski 2013-10-09 17:27 ` [kernel-hardening] " Andy Lutomirski 2013-10-09 17:27 ` Andy Lutomirski 2013-10-13 10:18 ` Djalal Harouni 2013-10-13 10:18 ` [kernel-hardening] " Djalal Harouni 2013-10-13 10:18 ` Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 3/9] procfs: Document the proposed solution to protect procfs entries Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 4/9] procfs: make /proc/*/{stack,syscall} 0400 Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 5/9] procfs: make /proc entries that use seq files able to access file->f_cred Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 6/9] procfs: add permission checks on the file's opener of /proc/*/stat Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-02 1:39 ` Andy Lutomirski 2013-10-02 1:39 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 15:14 ` Djalal Harouni 2013-10-02 15:14 ` [kernel-hardening] " Djalal Harouni 2013-10-02 16:46 ` Andy Lutomirski 2013-10-02 16:46 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 19:00 ` Djalal Harouni 2013-10-02 19:00 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` Djalal Harouni [this message] 2013-10-01 20:26 ` [kernel-hardening] [PATCH v2 7/9] procfs: add permission checks on the file's opener of /proc/*/personality Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 8/9] procfs: improve permission checks on /proc/*/stack Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-01 20:26 ` [PATCH v2 9/9] procfs: improve permission checks on /proc/*/syscall Djalal Harouni 2013-10-01 20:26 ` [kernel-hardening] " Djalal Harouni 2013-10-02 1:40 ` [PATCH v2 0/9] procfs: protect /proc/<pid>/* files with file->f_cred Andy Lutomirski 2013-10-02 1:40 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 14:37 ` Djalal Harouni 2013-10-02 14:37 ` [kernel-hardening] " Djalal Harouni 2013-10-02 16:51 ` Andy Lutomirski 2013-10-02 16:51 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 17:48 ` Kees Cook 2013-10-02 17:48 ` [kernel-hardening] " Kees Cook 2013-10-02 17:48 ` Kees Cook 2013-10-02 18:00 ` Andy Lutomirski 2013-10-02 18:00 ` [kernel-hardening] " Andy Lutomirski 2013-10-02 18:00 ` Andy Lutomirski 2013-10-02 18:07 ` Kees Cook 2013-10-02 18:07 ` [kernel-hardening] " Kees Cook 2013-10-02 18:07 ` Kees Cook 2013-10-03 23:14 ` Julien Tinnes 2013-10-03 23:14 ` [kernel-hardening] " Julien Tinnes 2013-10-03 23:14 ` Julien Tinnes 2013-10-02 18:26 ` Djalal Harouni 2013-10-02 18:26 ` [kernel-hardening] " Djalal Harouni 2013-10-02 18:26 ` Djalal Harouni 2013-10-02 18:41 ` Djalal Harouni 2013-10-02 18:41 ` [kernel-hardening] " Djalal Harouni 2013-10-02 18:41 ` Djalal Harouni 2013-10-02 18:22 ` Djalal Harouni 2013-10-02 18:22 ` [kernel-hardening] " Djalal Harouni 2013-10-02 18:22 ` Djalal Harouni 2013-10-02 18:35 ` Kees Cook 2013-10-02 18:35 ` [kernel-hardening] " Kees Cook 2013-10-02 18:35 ` Kees Cook 2013-10-02 18:48 ` Djalal Harouni 2013-10-02 18:48 ` [kernel-hardening] " Djalal Harouni 2013-10-02 18:48 ` Djalal Harouni 2013-10-02 19:43 ` Kees Cook 2013-10-02 19:43 ` [kernel-hardening] " Kees Cook 2013-10-02 19:43 ` Kees Cook 2013-10-03 6:12 ` Ingo Molnar 2013-10-03 6:12 ` [kernel-hardening] " Ingo Molnar 2013-10-03 6:12 ` Ingo Molnar 2013-10-03 12:29 ` Djalal Harouni 2013-10-03 12:29 ` [kernel-hardening] " Djalal Harouni 2013-10-03 12:29 ` Djalal Harouni 2013-10-03 15:15 ` Andy Lutomirski 2013-10-03 15:15 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 15:15 ` Andy Lutomirski 2013-10-03 15:40 ` Djalal Harouni 2013-10-03 15:40 ` [kernel-hardening] " Djalal Harouni 2013-10-03 15:40 ` Djalal Harouni 2013-10-03 15:50 ` Andy Lutomirski 2013-10-03 15:50 ` [kernel-hardening] " Andy Lutomirski 2013-10-03 15:50 ` Andy Lutomirski 2013-10-03 18:37 ` Djalal Harouni 2013-10-03 18:37 ` [kernel-hardening] " Djalal Harouni 2013-10-03 18:37 ` Djalal Harouni 2013-10-04 9:05 ` Djalal Harouni 2013-10-04 9:05 ` [kernel-hardening] " Djalal Harouni 2013-10-04 9:05 ` Djalal Harouni 2013-10-02 18:12 ` Djalal Harouni 2013-10-02 18:12 ` [kernel-hardening] " Djalal Harouni 2013-10-03 6:22 ` Ingo Molnar 2013-10-03 6:22 ` [kernel-hardening] " Ingo Molnar 2013-10-03 12:56 ` Djalal Harouni 2013-10-03 12:56 ` [kernel-hardening] " Djalal Harouni 2013-10-03 13:39 ` Ingo Molnar 2013-10-03 13:39 ` [kernel-hardening] " Ingo Molnar
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1380659178-28605-8-git-send-email-tixxdz@opendz.org \ --to=tixxdz@opendz.org \ --cc=akpm@linux-foundation.org \ --cc=ebiederm@xmission.com \ --cc=gorcunov@openvz.org \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=rientjes@google.com \ --cc=serge.hallyn@ubuntu.com \ --cc=tixxdz@gmail.com \ --cc=torvalds@linux-foundation.org \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.