Patch "fix infoleak in waitid(2)" has been added to the 4.13-stable tree
This is a note to let you know that I've just added the patch titled
fix infoleak in waitid(2)
to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
fix-infoleak-in-waitid-2.patch
and it can be found in the queue-4.13 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
6c85501f2fabcfc4fc6ed976543d252c4eaf4be9Mon Sep 17 00:00:00 2001
From: Al Viro <[email protected]>
Date: Fri, 29 Sep 2017 13:43:15 -0400
Subject: fix infoleak in waitid(2)
From: Al Viro <[email protected]>
commit 6c85501f2fabcfc4fc6ed976543d252c4eaf4be9 upstream.
kernel_waitid() can return a PID, an error or 0. rusage is filled in the first case and waitid(2) rusage should've been copied out exactly in that case, *not* whenever kernel_waitid() has not returned an error. Compat variant shares that braino; none of kernel_wait4() callers do, so the below ought to fix it.
--- kernel/exit.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-)
kernel/exit.c +10 -13
@@ -1601,12 +1601,10 @@ SYSCALL_DEFINE5(waitid, int, which, pid_struct waitid_info info = {.status =0 };long err =kernel_waitid (which, upid, &info, options, ru ? &r :NULL );int signo =0 ; +if (err >0 ) { signo =SIGCHLD ; err =0 ; - } - -if (!err) {if (ru &©_to_user (ru, &r,sizeof (struct rusage )))return -EFAULT ; }
@@ -1724,16 +1722,15 @@ COMPAT_SYSCALL_DEFINE5(waitid,if (err >0 ) { signo =SIGCHLD ; err =0 ; - } - -if (!err && uru) { -/* kernel_waitid() overwrites everything in ru */ -if (COMPAT_USE_64BIT_TIME ) - err =copy_to_user (uru, &ru,sizeof (ru)); -else - err =put_compat_rusage (&ru, uru); -if (err) -return -EFAULT ; +if (uru) { +/* kernel_waitid() overwrites everything in ru */ +if (COMPAT_USE_64BIT_TIME ) + err =copy_to_user (uru, &ru,sizeof (ru)); +else + err =put_compat_rusage (&ru, uru); +if (err) +return -EFAULT ; + } }if (!infop)
Patches currently in stable-queue which might be from [email protected] are
queue-4.13/fix-infoleak-in-waitid-2.patch queue-4.13/fs-proc-report-eip-esp-in-prod-pid-stat-for-coredumping.patch