Thread (26 messages) 26 messages, 7 authors, 2012-02-01

Re: [PATCH v5 2/3] seccomp_filters: system call filtering using BPF

From: Will Drewry <wad@chromium.org>
Date: 2012-01-28 19:50:57
Also in: lkml

On Sat, Jan 28, 2012 at 8:28 AM, Andrew Lutomirski [off-list ref] wrote:
On Fri, Jan 27, 2012 at 3:24 PM, Will Drewry [off-list ref] wrote:
quoted
Filter programs will be inherited across fork/clone and execve.
However, if the task attaching the filter is unprivileged
(!CAP_SYS_ADMIN) the no_new_privs bit will be set on the task.  This
ensures that unprivileged tasks cannot attach filters that affect
privileged tasks (e.g., setuid binary).
This makes me nervous -- I don't think that the behavior of any new
API should be different depending on privilege level -- adding a
privilege should just make things work that would otherwise fail.  You
might end up with bugs where a program is completely safe if run
without CAP_SYS_ADMIN but, if run with CAP_SYS_ADMIN, bad things
happen.  (The behavior of setuid(geteuid()) is an example of this
problem.)

One way to fix it is to make setting a filter program fail unless
capable(CAP_SYS_ADMIN ) || no_new_privs.
Good call.  I'll upgrade the interaction with no_new_privs to be
explicit in the next revision.  It is certainly more transparent and
removes the risk of unintended consequences.

thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help