Re: [PATCH v2 1/8] exec: Teach prepare_exec_creds how exec treats uids & gids

From: Kees Cook
Date: Tue May 19 2020 - 14:03:57 EST


On Mon, May 18, 2020 at 07:29:41PM -0500, Eric W. Biederman wrote:
>
> It is almost possible to use the result of prepare_exec_creds with no
> modifications during exec. Update prepare_exec_creds to initialize
> the suid and the fsuid to the euid, and the sgid and the fsgid to the
> egid. This is all that is needed to handle the common case of exec
> when nothing special like a setuid exec is happening.
>
> That this preserves the existing behavior of exec can be verified
> by examing bprm_fill_uid and cap_bprm_set_creds.

Yup, agreed.

> This change makes it clear that the later parts of exec that
> update bprm->cred are just need to handle special cases such
> as setuid exec and change of domains.

One question, though: why add this, since the repeat calling of the caps
LSM hook will do this? Is there a call ordering change here, or is this
just to make the new LSM hook more robust?

Regardless, this looks correct, if perhaps redundant. :)

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

--
Kees Cook