Message ID | 20211123203715.193413-1-zenczykowski@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 079925cce1d06fe6614b1559b0020497b5b83d6a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: allow SO_MARK with CAP_NET_RAW | expand |
Hello: This patch was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Tue, 23 Nov 2021 12:37:15 -0800 you wrote: > From: Maciej Żenczykowski <maze@google.com> > > A CAP_NET_RAW capable process can already spoof (on transmit) anything > it desires via raw packet sockets... There is no good reason to not > allow it to also be able to play routing tricks on packets from its > own normal sockets. > > [...] Here is the summary with links: - net: allow SO_MARK with CAP_NET_RAW https://git.kernel.org/netdev/net-next/c/079925cce1d0 You are awesome, thank you!
diff --git a/net/core/sock.c b/net/core/sock.c index 1e49a127adef..4a499d255f40 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1281,7 +1281,8 @@ int sock_setsockopt(struct socket *sock, int level, int optname, clear_bit(SOCK_PASSSEC, &sock->flags); break; case SO_MARK: - if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) { + if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_RAW) && + !ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) { ret = -EPERM; break; }