[PATCH v1 net-next 0/7] af_unix: Introduce SO_PASSRIGHTS

From
Kuniyuki Iwashima <hidden>
Date
2025-05-08 01:30:36
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@amazon.com/ (local)


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
Thread (10 messages) 10 messages, 2 authors, last reply 2025-05-09
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help