On Tue, Jan 02, 2018 at 03:21:33PM -0800, Kees Cook wrote:
> 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 <horsley1...@gmail.com>

Seems right, any chance we could get a tested-by: Tom?  (Did we already
get that?)

> Fixes: e37fdb785a5f ("exec: Use secureexec for setting dumpability")
> Cc: sta...@vger.kernel.org
> Signed-off-by: Kees Cook <keesc...@chromium.org>
> ---
>  fs/exec.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/exec.c b/fs/exec.c
> index 5688b5e1b937..7eb8d21bcab9 100644
> --- a/fs/exec.c
> +++ b/fs/exec.c
> @@ -1349,9 +1349,14 @@ void setup_new_exec(struct linux_binprm * bprm)
>  
>       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);
> -- 
> 2.7.4
> 
> 
> -- 
> Kees Cook
> Pixel Security

Reply via email to