All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: Tycho Andersen <tycho@tycho.ws>
Cc: Kees Cook <keescook@chromium.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux Containers <containers@lists.linux-foundation.org>,
	Linux API <linux-api@vger.kernel.org>,
	Oleg Nesterov <oleg@redhat.com>,
	"Eric W . Biederman" <ebiederm@xmission.com>,
	"Serge E . Hallyn" <serge@hallyn.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Tyler Hicks <tyhicks@canonical.com>,
	Akihiro Suda <suda.akihiro@lab.ntt.co.jp>,
	Jann Horn <jannh@google.com>
Subject: Re: [PATCH v6 4/5] seccomp: add support for passing fds via USER_NOTIF
Date: Wed, 19 Sep 2018 07:19:56 -0700	[thread overview]
Message-ID: <C1406292-7496-459F-A76A-20C9EFBB12D6@amacapital.net> (raw)
In-Reply-To: <20180919095536.GM4672@cisco>



> On Sep 19, 2018, at 2:55 AM, Tycho Andersen <tycho@tycho.ws> wrote:
> 
>> On Wed, Sep 12, 2018 at 04:52:38PM -0700, Andy Lutomirski wrote:
>>> On Thu, Sep 6, 2018 at 8:28 AM, Tycho Andersen <tycho@tycho.ws> wrote:
>>> The idea here is that the userspace handler should be able to pass an fd
>>> back to the trapped task, for example so it can be returned from socket().
>>> 
>>> I've proposed one API here, but I'm open to other options. In particular,
>>> this only lets you return an fd from a syscall, which may not be enough in
>>> all cases. For example, if an fd is written to an output parameter instead
>>> of returned, the current API can't handle this. Another case is that
>>> netlink takes as input fds sometimes (IFLA_NET_NS_FD, e.g.). If netlink
>>> ever decides to install an fd and output it, we wouldn't be able to handle
>>> this either.
>> 
>> An alternative could be to have an API (an ioctl on the listener,
>> perhaps) that just copies an fd into the tracee.  There would be the
>> obvious set of options: do we replace an existing fd or allocate a new
>> one, and is it CLOEXEC.  Then the tracer could add an fd and then
>> return it just like it's a regular number.
>> 
>> I feel like this would be more flexible and conceptually simpler, but
>> maybe a little slower for the common cases.  What do you think?
> 
> I'm just implementing this now, and there's one question: when do we
> actually do the fd install? Should we do it when the user calls
> SECCOMP_NOTIF_PUT_FD, or when the actual response is sent? It feels
> like we should do it when the response is sent, instead of doing it
> right when SECCOMP_NOTIF_PUT_FD is called, since if there's a
> subsequent signal and the tracer decides to discard the response,
> we'll have to implement some delete mechanism to delete the fd, but it
> would have already been visible to the process, etc. So I'll go
> forward with this unless there are strong objections, but I thought
> I'd point it out just to avoid another round trip.
> 
> 

Can you do that non-racily?  That is, you need to commit to an fd *number* right away, but what if another thread uses the number before you actually install the fd?

Do we really allow non-“kill” signals to interrupt the whole process?  It might be the case that we don’t really need to clean up from signals if there’s a guarantee that the thread dies.

  reply	other threads:[~2018-09-19 14:20 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-06 15:28 [PATCH v6 0/5] seccomp trap to userspace Tycho Andersen
2018-09-06 15:28 ` [PATCH v6 1/5] seccomp: add a return code to " Tycho Andersen
2018-09-06 22:15   ` Tyler Hicks
2018-09-07 15:45     ` Tycho Andersen
2018-09-08 20:35     ` Tycho Andersen
2018-09-06 15:28 ` [PATCH v6 2/5] seccomp: make get_nth_filter available outside of CHECKPOINT_RESTORE Tycho Andersen
2018-09-11 10:25   ` kbuild test robot
2018-09-11 10:25     ` kbuild test robot
2018-09-06 15:28 ` [PATCH v6 3/5] seccomp: add a way to get a listener fd from ptrace Tycho Andersen
2018-09-06 15:45   ` Jann Horn
2018-09-06 15:50     ` Tycho Andersen
2018-09-13  0:00   ` Andy Lutomirski
2018-09-13  9:24     ` Tycho Andersen
2018-10-17  7:25     ` Michael Tirado
2018-10-17 15:00       ` Tycho Andersen
     [not found]         ` <CAMkWEXM1c7AGTH=tpgoHtPnFFY-V+05nGOU90Sa1E3EPY9OhKQ@mail.gmail.com>
2018-10-17 18:15           ` Michael Tirado
2018-10-21 16:00             ` Tycho Andersen
2018-10-17 18:31       ` Kees Cook
2018-09-06 15:28 ` [PATCH v6 4/5] seccomp: add support for passing fds via USER_NOTIF Tycho Andersen
2018-09-06 16:15   ` Jann Horn
2018-09-06 16:22     ` Tycho Andersen
2018-09-06 18:30       ` Tycho Andersen
2018-09-10 17:00         ` Jann Horn
2018-09-11 20:29           ` Tycho Andersen
2018-09-12 23:52   ` Andy Lutomirski
2018-09-13  9:25     ` Tycho Andersen
2018-09-13  9:42     ` Aleksa Sarai
2018-09-19  9:55     ` Tycho Andersen
2018-09-19 14:19       ` Andy Lutomirski [this message]
2018-09-19 14:38         ` Tycho Andersen
2018-09-19 19:58           ` Andy Lutomirski
2018-09-20 23:42             ` Tycho Andersen
2018-09-20 23:42               ` Tycho Andersen
2018-09-21  2:18               ` Andy Lutomirski
2018-09-21 13:39                 ` Tycho Andersen
2018-09-21 18:27                   ` Andy Lutomirski
2018-09-21 22:03                     ` Tycho Andersen
2018-09-21 20:46                   ` Jann Horn
2018-09-25 12:53                 ` Tycho Andersen
2018-09-06 15:28 ` [PATCH v6 5/5] samples: add an example of seccomp user trap Tycho Andersen

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=C1406292-7496-459F-A76A-20C9EFBB12D6@amacapital.net \
    --to=luto@amacapital.net \
    --cc=christian.brauner@ubuntu.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=jannh@google.com \
    --cc=keescook@chromium.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=serge@hallyn.com \
    --cc=suda.akihiro@lab.ntt.co.jp \
    --cc=tycho@tycho.ws \
    --cc=tyhicks@canonical.com \
    /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.