Skip to content

Commit 96ca579

Browse files
keestorvalds
authored andcommitted
waitid(): Add missing access_ok() checks
Adds missing access_ok() checks. CVE-2017-5123 Reported-by: Chris Salls <[email protected]> Signed-off-by: Kees Cook <[email protected]> Acked-by: Al Viro <[email protected]> Fixes: 4c48abe ("waitid(): switch copyout of siginfo to unsafe_put_user()") Cc: [email protected] # 4.13 Signed-off-by: Linus Torvalds <[email protected]>
1 parent ff33952 commit 96ca579

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

kernel/exit.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,6 +1610,9 @@ SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
16101610
if (!infop)
16111611
return err;
16121612

1613+
if (!access_ok(VERIFY_WRITE, infop, sizeof(*infop)))
1614+
goto Efault;
1615+
16131616
user_access_begin();
16141617
unsafe_put_user(signo, &infop->si_signo, Efault);
16151618
unsafe_put_user(0, &infop->si_errno, Efault);
@@ -1735,6 +1738,9 @@ COMPAT_SYSCALL_DEFINE5(waitid,
17351738
if (!infop)
17361739
return err;
17371740

1741+
if (!access_ok(VERIFY_WRITE, infop, sizeof(*infop)))
1742+
goto Efault;
1743+
17381744
user_access_begin();
17391745
unsafe_put_user(signo, &infop->si_signo, Efault);
17401746
unsafe_put_user(0, &infop->si_errno, Efault);

0 commit comments

Comments
 (0)