From: Kees Cook <keescook@chromium.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: linux-api@vger.kernel.org, Andy Lutomirski <luto@amacapital.net>,
Will Drewry <wad@chromium.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Al Viro <viro@zeniv.linux.org.uk>,
Michael Kerrisk <mtk.manpages@gmail.com>,
linux-man@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: Semantics of SECCOMP_MODE_STRICT?
Date: Tue, 29 Jun 2021 22:23:06 -0700 [thread overview]
Message-ID: <202106292156.9458CF22@keescook> (raw)
In-Reply-To: <87r1gkp9i7.fsf@disp2133>
On Tue, Jun 29, 2021 at 05:54:24PM -0500, Eric W. Biederman wrote:
>
> I am the process of cleaning up the process exit path in the kernel, and
> as part of that I am looking at the callers of do_exit. A very
> interesting one is __seccure_computing_strict.
>
> Looking at the code is very clear that if a system call is attempted
> that is not in the table the thread attempting to execute that system
> call is terminated.
>
> Reading the man page for seccomp it says that the process is delivered
> SIGKILL.
>
> The practical difference is what happens for multi-threaded
> applications.
>
> What are the desired semantics for a multi-threaded application if one
> thread attempts to use a unsupported system call? Should the thread be
> terminated or the entire application?
>
> Do we need to fix the kernel, or do we need to fix the manpages?
I don't know of anyone actually using SECCOMP_MODE_STRICT, but the
original implementation was (perhaps accidentally) thread-killing. It
turns out this is not a particularly desirable situation, and when
SECCOMP_MODE_FILTER was created, it continued with that semantic,
but later grew a process-killing flags, as that's what most programs
actually wanted.
It's likely the manpage needs fixing (we had to make similar updates
for SECCOMP_MODE_FILTER), since some of the early examples of using
SECCOMP_MODE_STRICT were basically "fork, calculate, write result to
fd, exit".
FWIW the seccomp selftests don't even check for the thread-vs-process
SIGKILL of SECCOMP_MODE_STRICT. :)
--
Kees Cook
next prev parent reply other threads:[~2021-06-30 5:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-29 22:54 Semantics of SECCOMP_MODE_STRICT? Eric W. Biederman
2021-06-30 5:02 ` Aleksa Sarai
2021-06-30 5:23 ` Kees Cook [this message]
2021-06-30 20:11 ` [PATCH] seccomp.2: Clarify that bad system calls kill the thread Eric W. Biederman
2021-06-30 23:06 ` Kees Cook
2021-08-10 2:07 ` Michael Kerrisk (man-pages)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202106292156.9458CF22@keescook \
--to=keescook@chromium.org \
--cc=ebiederm@xmission.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mtk.manpages@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
--cc=wad@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.