Patch "seccomp: always propagate NO_NEW_PRIVS on tsync" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
seccomp: always propagate NO_NEW_PRIVS on tsync
to the 4.4-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:
seccomp-always-propagate-no_new_privs-on-tsync.patch
and it can be found in the queue-4.4 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
103502a35cfce0710909da874f092cb44823ca03Mon Sep 17 00:00:00 2001
From: Jann Horn <[email protected]>
Date: Sat, 26 Dec 2015 06:00:48 +0100
Subject: seccomp: always propagate NO_NEW_PRIVS on tsync
From: Jann Horn <[email protected]>
commit 103502a35cfce0710909da874f092cb44823ca03 upstream.
Before this patch, a process with some permissive seccomp filter that was applied by root without NO_NEW_PRIVS was able to add more filters to itself without setting NO_NEW_PRIVS by setting the new filter from a throwaway thread with NO_NEW_PRIVS.
--- kernel/seccomp.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
kernel/seccomp.c +11 -11
@@ -316,24 +316,24 @@ static inline void seccomp_sync_threads(put_seccomp_filter (thread);smp_store_release (&thread->seccomp.filter, caller->seccomp.filter); + +/* +* Don't let an unprivileged task work around +* the no_new_privs restriction by creating +* a thread that sets it up, enters seccomp, +* then dies. +*/ +if (task_no_new_privs (caller)) +task_set_no_new_privs (thread); +/* * Opt the other thread into seccomp if needed. * As threads are considered to be trust-realm * equivalent (see ptrace_may_access), it is safe to * allow one thread to transition the other. */ -if (thread->seccomp.mode ==SECCOMP_MODE_DISABLED ) { -/* -* Don't let an unprivileged task work around -* the no_new_privs restriction by creating -* a thread that sets it up, enters seccomp, -* then dies. -*/ -if (task_no_new_privs (caller)) -task_set_no_new_privs (thread); - +if (thread->seccomp.mode ==SECCOMP_MODE_DISABLED )seccomp_assign_mode (thread,SECCOMP_MODE_FILTER ); - } } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/seccomp-always-propagate-no_new_privs-on-tsync.patch