af_unix: Introduce SO_PASSRIGHTS
From: | Kuniyuki Iwashima <kuniyu-AT-amazon.com> | |
To: | "David S. Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Willem de Bruijn <willemb-AT-google.com> | |
Subject: | [PATCH v1 net-next 0/7] af_unix: Introduce SO_PASSRIGHTS | |
Date: | Wed, 07 May 2025 18:29:12 -0700 | |
Message-ID: | <20250508013021.79654-1-kuniyu@amazon.com> | |
Cc: | Simon Horman <horms-AT-kernel.org>, Christian Brauner <brauner-AT-kernel.org>, Kuniyuki Iwashima <kuniyu-AT-amazon.com>, Kuniyuki Iwashima <kuni1840-AT-gmail.com>, <netdev-AT-vger.kernel.org> | |
Archive-link: | Article |
As long as recvmsg() or recvmmsg() is used with cmsg, it is not possible to avoid receiving file descriptors via SCM_RIGHTS. This series introduces a new socket option, SO_PASSRIGHTS, to allow disabling SCM_RIGHTS. The option is enabled by default. See patch 6 for background/context. This series is related to [0], but is split into a separate series, as most of the patches are specific to AF_UNIX. The v2 of the BPF LSM extension part will be posted later, once this series is merged into net-next and has landed in bpf-next. [0]: https://lore.kernel.org/bpf/20250505215802.48449-1-kuniyu... Kuniyuki Iwashima (7): af_unix: Factorise test_bit() for SOCK_PASSCRED and SOCK_PASSPIDFD. af_unix: Don't pass struct socket to maybe_add_creds(). scm: Move scm_recv() from scm.h to scm.c. af_unix: Move SOCK_PASS{CRED,PIDFD,SEC} to sk->sk_flags. af_unix: Inherit sk_flags at connect(). af_unix: Introduce SO_PASSRIGHTS. selftest: af_unix: Test SO_PASSRIGHTS. arch/alpha/include/uapi/asm/socket.h | 2 + arch/mips/include/uapi/asm/socket.h | 2 + arch/parisc/include/uapi/asm/socket.h | 2 + arch/sparc/include/uapi/asm/socket.h | 2 + include/linux/net.h | 15 +-- include/net/scm.h | 121 +---------------- include/net/sock.h | 6 + include/uapi/asm-generic/socket.h | 2 + net/core/scm.c | 124 ++++++++++++++++++ net/core/sock.c | 25 +++- net/unix/af_unix.c | 88 ++++++------- tools/include/uapi/asm-generic/socket.h | 2 + .../selftests/net/af_unix/scm_rights.c | 84 +++++++++++- 13 files changed, 296 insertions(+), 179 deletions(-) -- 2.49.0