[PATCH v8 0/5] proc: subset=pid: Relax check of mount visibility

Alexey Gladkov
2026-02-13T10:44:46Z

When mounting procfs with the subset=pids option, all static files become
unavailable and only the dynamic part with information about pids is accessible.

In this case, there is no point in imposing additional restrictions on the
visibility of the entire filesystem for the mounter. Everything that can be
hidden in procfs is already inaccessible.

Currently, these restrictions prevent pidfs from being mounted inside rootless
containers, as almost all container implementations override part of procfs to
hide certain directories. Relaxing these restrictions will allow pidfs to be
used in nested containerization.

---
Changelog
---------
v8:
* Remove mounter credential change on remount as suggested by Christian Brauner.

v7:
* Rebase on v6.19-rc5.
* Rename SB_I_DYNAMIC to SB_I_USERNS_ALLOW_REVEALING.

v6:
* Add documentation about procfs mount restrictions.
* Reorder commits for better review.

v4:
* Set SB_I_DYNAMIC only if pidonly is set.
* Add an error message if subset=pid is canceled during remount.

v3:
* Add 'const' to struct cred *mounter_cred (fix kernel test robot warning).

v2:
* cache the mounters credentials and make access to the net directories
contingent of the permissions of the mounter of procfs.

Alexey Gladkov (5):
docs: proc: add documentation about mount restrictions
proc: subset=pid: Show /proc/self/net only for CAP_NET_ADMIN
proc: Disable cancellation of subset=pid option
proc: Relax check of mount visibility
docs: proc: add documentation about relaxing visibility restrictions

Documentation/filesystems/proc.rst | 15 +++++++++++++++
fs/namespace.c | 29 ++++++++++++++++-------------
fs/proc/proc_net.c | 8 ++++++++
fs/proc/root.c | 22 ++++++++++++++++------
include/linux/fs/super_types.h | 2 ++
include/linux/proc_fs.h | 1 +
6 files changed, 58 insertions(+), 19 deletions(-)

--
2.53.0