public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* Allow ioctl TUNSETIFF without CAP_NET_ADMIN via seccomp?
@ 2024-09-17  4:31 Zach Walton
  2024-09-17  8:45 ` Willem de Bruijn
  0 siblings, 1 reply; 4+ messages in thread
From: Zach Walton @ 2024-09-17  4:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Willem de Bruijn, Jason Wang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev

I was debugging a seccomp profile that attempts to allow TUNSETIFF in
a container, relevant bits:

...
      {
            "names":[
                  "ioctl"
            ],
            "action":"SCMP_ACT_ALLOW",
            "args":[
                  {
                        "index":1,
                        "value":1074025674,
                        "op":"SCMP_CMP_EQ"
                  },
                  {
                        "index":1,
                        "value":2147767498,
                        "op":"SCMP_CMP_EQ"
                  }
            ]
      },
...

...but I get:

Tuntap IOCTL TUNSETIFF failed [0], errno operation not permitted

Looking at the code, it seems that there's an explicit check for
CAP_NET_ADMIN, which I'd prefer not to grant the container because the
permissions are excessive (yes, I can lock it down with seccomp but
still...): https://github.com/torvalds/linux/blob/3352633ce6b221d64bf40644d412d9670e7d56e3/drivers/net/tun.c#L2758-L2759

Is it possible to update this check to allow TUNSETIFF operations if a
seccomp profile allowing it is in place? (I am not a kernel developer
and it's unlikely I could safely contribute this)

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-17 16:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-17  4:31 Allow ioctl TUNSETIFF without CAP_NET_ADMIN via seccomp? Zach Walton
2024-09-17  8:45 ` Willem de Bruijn
2024-09-17 15:58   ` Zach Walton
2024-09-17 16:14     ` Stanislav Fomichev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox