Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 80dd00a

Browse files
committed
userns: Check euid no fsuid when establishing an unprivileged uid mapping
setresuid allows the euid to be set to any of uid, euid, suid, and fsuid. Therefor it is safe to allow an unprivileged user to map their euid and use CAP_SETUID privileged with exactly that uid, as no new credentials can be obtained. I can not find a combination of existing system calls that allows setting uid, euid, suid, and fsuid from the fsuid making the previous use of fsuid for allowing unprivileged mappings a bug. This is part of a fix for CVE-2014-8989. Cc: [email protected] Reviewed-by: Andy Lutomirski <[email protected]> Signed-off-by: "Eric W. Biederman" <[email protected]>
1 parent be7c6db commit 80dd00a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/user_namespace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,7 @@ static bool new_idmap_permitted(const struct file *file,
819819
u32 id = new_map->extent[0].lower_first;
820820
if (cap_setid == CAP_SETUID) {
821821
kuid_t uid = make_kuid(ns->parent, id);
822-
if (uid_eq(uid, file->f_cred->fsuid))
822+
if (uid_eq(uid, file->f_cred->euid))
823823
return true;
824824
}
825825
}

0 commit comments

Comments
 (0)