lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 18 May 2020 19:29:41 -0500 From: ebiederm@...ssion.com (Eric W. Biederman) To: <linux-kernel@...r.kernel.org> Cc: Linus Torvalds <torvalds@...ux-foundation.org>, Oleg Nesterov <oleg@...hat.com>, Jann Horn <jannh@...gle.com>, Kees Cook <keescook@...omium.org>, Greg Ungerer <gerg@...ux-m68k.org>, Rob Landley <rob@...dley.net>, Bernd Edlinger <bernd.edlinger@...mail.de>, <linux-fsdevel@...r.kernel.org>, Al Viro <viro@...IV.linux.org.uk>, Alexey Dobriyan <adobriyan@...il.com>, Andrew Morton <akpm@...ux-foundation.org>, Casey Schaufler <casey@...aufler-ca.com>, linux-security-module@...r.kernel.org, James Morris <jmorris@...ei.org>, "Serge E. Hallyn" <serge@...lyn.com>, Andy Lutomirski <luto@...capital.net> Subject: [PATCH v2 1/8] exec: Teach prepare_exec_creds how exec treats uids & gids 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. 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. Signed-off-by: "Eric W. Biederman" <ebiederm@...ssion.com> --- kernel/cred.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/cred.c b/kernel/cred.c index 71a792616917..421b1149c651 100644 --- a/kernel/cred.c +++ b/kernel/cred.c @@ -315,6 +315,9 @@ struct cred *prepare_exec_creds(void) new->process_keyring = NULL; #endif + new->suid = new->fsuid = new->euid; + new->sgid = new->fsgid = new->egid; + return new; } -- 2.25.0
Powered by blists - more mailing lists