|
|
Subscribe / Log in / New account

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




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds