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

Alexey Gladkov posted 5 patches 3 days, 11 hours ago
Documentation/filesystems/proc.rst | 15 +++++++++++++
fs/fs_context.c                    |  1 +
fs/mount.h                         |  4 ++++
fs/namespace.c                     | 34 ++++++++++++++++--------------
fs/proc/proc_net.c                 |  8 +++++++
fs/proc/root.c                     | 24 ++++++++++++++++-----
include/linux/fs_context.h         |  1 +
include/linux/proc_fs.h            |  1 +
8 files changed, 67 insertions(+), 21 deletions(-)
[PATCH v9 0/5] proc: subset=pid: Relax check of mount visibility
Posted by Alexey Gladkov 3 days, 11 hours ago
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
---------
v9:
* Rework the patch based on the one proposed by Christian Brauner.

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 (4):
  proc: subset=pid: Show /proc/self/net only for CAP_NET_ADMIN
  proc: Disable cancellation of subset=pid option
  proc: Skip the visibility check if subset=pid is used
  docs: proc: add documentation about mount restrictions

Christian Brauner (1):
  namespace: record fully visible mounts in list

 Documentation/filesystems/proc.rst | 15 +++++++++++++
 fs/fs_context.c                    |  1 +
 fs/mount.h                         |  4 ++++
 fs/namespace.c                     | 34 ++++++++++++++++--------------
 fs/proc/proc_net.c                 |  8 +++++++
 fs/proc/root.c                     | 24 ++++++++++++++++-----
 include/linux/fs_context.h         |  1 +
 include/linux/proc_fs.h            |  1 +
 8 files changed, 67 insertions(+), 21 deletions(-)


base-commit: 028ef9c96e96197026887c0f092424679298aae8
-- 
2.53.0