Linux filesystem development
 help / color / mirror / Atom feed
* [PATCH 00/10] mount: a few additional bugfixes
@ 2026-09-26 13:44 Christian Brauner
  2026-09-26 13:44 ` [PATCH 01/10] namespace: reset the old parent's ->overmount in mnt_change_mountpoint() Christian Brauner
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Christian Brauner @ 2026-09-26 13:44 UTC (permalink / raw)
  To: linux-fsdevel
  Cc: Alexander Viro, Jan Kara, Linus Torvalds, Jann Horn,
	Christian Brauner (Amutable), stable

Here's a set of additional mount fixes that fell out of my recent look
at the mount code:

- Fix a UAF in mnt_change_mountpoint().
- Fix a UAF in statmount().
- FIX a UAF and various associated bugs in clone_mnt()
- Prevent copying an unmounted mount tree.
- Avoid pointless work in mount_setattr().
- Refuse fspick() on kernel internal superblocks.
- Simplify dissolve_on_fput() and unshare().

Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
---
Christian Brauner (10):
      namespace: reset the old parent's ->overmount in mnt_change_mountpoint()
      statmount: read the parent of an unmounted mount under mount_lock
      namespace: don't inherit MNT_UMOUNT in clone_mnt()
      namespace: don't copy an unmounted mount tree
      namespace: check the target before walking it in do_mount_setattr()
      fs: refuse fspick() on internal superblocks
      fs: put the old fs_struct before the old namespaces in unshare()
      namespace: drop the file's reference first in dissolve_on_fput()
      selftests/filesystems: check that an unmounted mount tree isn't walked
      selftests/filesystems: check that a dead mount's overmount isn't followed

 fs/file_table.c                                    |   3 +-
 fs/fsopen.c                                        |   3 +
 fs/namespace.c                                     |  37 +-
 include/linux/mount.h                              |   2 +-
 kernel/fork.c                                      |   9 +-
 tools/testing/selftests/Makefile                   |   1 +
 .../selftests/filesystems/mount_cycle/.gitignore   |   3 +
 .../selftests/filesystems/mount_cycle/Makefile     |   6 +
 .../mount_cycle/overmount_reparent_test.c          | 181 ++++++++
 .../filesystems/mount_cycle/unmounted_tree_test.c  | 484 +++++++++++++++++++++
 10 files changed, 719 insertions(+), 10 deletions(-)
---
base-commit: 762a6411a5a7aa4119570bae590662312ccb4be3
change-id: 20260926-work-mount-fixes-2-90d619ace163


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-10-18 16:29 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-26 13:44 [PATCH 00/10] mount: a few additional bugfixes Christian Brauner
2026-09-26 13:44 ` [PATCH 01/10] namespace: reset the old parent's ->overmount in mnt_change_mountpoint() Christian Brauner
2026-09-26 13:44 ` [PATCH 02/10] statmount: read the parent of an unmounted mount under mount_lock Christian Brauner
2026-09-26 13:44 ` [PATCH 03/10] namespace: don't inherit MNT_UMOUNT in clone_mnt() Christian Brauner
2026-10-18  4:32   ` Al Viro
2026-10-18 16:29     ` Christian Brauner
2026-09-26 13:44 ` [PATCH 04/10] namespace: don't copy an unmounted mount tree Christian Brauner
2026-09-26 13:44 ` [PATCH 05/10] namespace: check the target before walking it in do_mount_setattr() Christian Brauner
2026-09-26 13:44 ` [PATCH 06/10] fs: refuse fspick() on internal superblocks Christian Brauner
2026-09-26 13:44 ` [PATCH 07/10] fs: put the old fs_struct before the old namespaces in unshare() Christian Brauner
2026-09-26 14:42   ` Bradley Morgan
2026-09-26 13:44 ` [PATCH 08/10] namespace: drop the file's reference first in dissolve_on_fput() Christian Brauner
2026-09-26 13:44 ` [PATCH 09/10] selftests/filesystems: check that an unmounted mount tree isn't walked Christian Brauner
2026-09-26 13:44 ` [PATCH 10/10] selftests/filesystems: check that a dead mount's overmount isn't followed Christian Brauner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox