| From e816c201aed5232171f8eb80b5d46ae6516683b9 Mon Sep 17 00:00:00 2001 |
| From: Kees Cook <keescook@chromium.org> |
| Date: Tue, 2 Jan 2018 15:21:33 -0800 |
| Subject: exec: Weaken dumpability for secureexec |
| |
| From: Kees Cook <keescook@chromium.org> |
| |
| commit e816c201aed5232171f8eb80b5d46ae6516683b9 upstream. |
| |
| This is a logical revert of commit e37fdb785a5f ("exec: Use secureexec |
| for setting dumpability") |
| |
| This weakens dumpability back to checking only for uid/gid changes in |
| current (which is useless), but userspace depends on dumpability not |
| being tied to secureexec. |
| |
| https://bugzilla.redhat.com/show_bug.cgi?id=1528633 |
| |
| Reported-by: Tom Horsley <horsley1953@gmail.com> |
| Fixes: e37fdb785a5f ("exec: Use secureexec for setting dumpability") |
| Signed-off-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/exec.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| --- a/fs/exec.c |
| +++ b/fs/exec.c |
| @@ -1350,9 +1350,14 @@ void setup_new_exec(struct linux_binprm |
| |
| current->sas_ss_sp = current->sas_ss_size = 0; |
| |
| - /* Figure out dumpability. */ |
| + /* |
| + * Figure out dumpability. Note that this checking only of current |
| + * is wrong, but userspace depends on it. This should be testing |
| + * bprm->secureexec instead. |
| + */ |
| if (bprm->interp_flags & BINPRM_FLAGS_ENFORCE_NONDUMP || |
| - bprm->secureexec) |
| + !(uid_eq(current_euid(), current_uid()) && |
| + gid_eq(current_egid(), current_gid()))) |
| set_dumpable(current->mm, suid_dumpable); |
| else |
| set_dumpable(current->mm, SUID_DUMP_USER); |