Skip to content

Commit e55f0c4

Browse files
committed
Merge tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
Pull set_user() update from Christian Brauner: "This contains a single fix to set_user() which aligns permission checks with the corresponding fork() codepath. No one involved in this could come up with a reason for the difference. A capable caller can already circumvent the check when they fork where the permission checks are already for the relevant capabilities in addition to also allowing to exceed nproc when it is the init user. So apply the same logic to set_user()" * tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: set_user: add capability check when rlimit(RLIMIT_NPROC) exceeds
2 parents 67b03f9 + 2863643 commit e55f0c4

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

kernel/sys.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,8 @@ static int set_user(struct cred *new)
480480
* failure to the execve() stage.
481481
*/
482482
if (is_ucounts_overlimit(new->ucounts, UCOUNT_RLIMIT_NPROC, rlimit(RLIMIT_NPROC)) &&
483-
new_user != INIT_USER)
483+
new_user != INIT_USER &&
484+
!capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN))
484485
current->flags |= PF_NPROC_EXCEEDED;
485486
else
486487
current->flags &= ~PF_NPROC_EXCEEDED;

0 commit comments

Comments
 (0)