summaryrefslogtreecommitdiff
path: root/drivers/gpu/nova-core/fsp/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2026-06-16 13:45:28 +0200
committerChristian Brauner <brauner@kernel.org>2026-07-01 15:26:22 +0200
commit6193f6cd2232581f11591a4f10a4c3fcd366c34a (patch)
tree1b99c3fe47d2c61bf849abe31d561fa39ad3b62e /drivers/gpu/nova-core/fsp/git@git.tavy.me:linux.git
parent665159e246749578d4e4bfe106ee3b74edcdab18 (diff)
parentd943e68edc5cb98192d38e31373bb6b6a73230c6 (diff)
Merge patch series "fs: refuse O_TMPFILE creation with an unmapped fsuid or fsgid"
Christian Brauner <brauner@kernel.org> says: vfs_tmpfile() is the only object-creation path in the VFS that never checked whether the caller's fsuid and fsgid map into the filesystem. On an idmapped mount whose idmapping does not cover the caller's fs{u,g}id, the ->tmpfile() instance initializes the new inode through inode_init_owner(), where mapped_fsuid()/mapped_fsgid() return INVALID_UID/INVALID_GID. The tmpfile ends up owned by (uid_t)-1, and because it is created I_LINKABLE it can subsequently be spliced into the namespace with linkat(2). Every other creation path already refuses this: may_o_create() (O_CREAT) and may_create_dentry() (mkdir, mknod, symlink, link) bail out with -EOVERFLOW via fsuidgid_has_mapping() precisely so that an object cannot be created with an owner the filesystem cannot represent. O_TMPFILE is no exception and must hold the same guarantee. Patch 1 adds the missing fsuidgid_has_mapping() check to vfs_tmpfile(). It is a no-op on non-idmapped mounts -- there the caller's fs{u,g}id always map in the superblock's user namespace -- and only takes effect on an idmapped mount that does not map the caller. It applies to every filesystem that sets FS_ALLOW_IDMAP and implements ->tmpfile() (tmpfs, ext4, btrfs, xfs, f2fs, ...), and to overlayfs, whose upper-layer tmpfile creation funnels through vfs_tmpfile() via backing_tmpfile_open(). Patch 2 adds a selftest that idmaps a detached tmpfs mount and checks both directions: an unmapped caller is refused with -EOVERFLOW, while a mapped caller can create an O_TMPFILE, link it into the namespace, and have its ownership round-trip through the mount idmap. * patches from https://patch.msgid.link/20260615-work-idmapped-tmpfile-v1-0-754a94d81f83@kernel.org: selftests/filesystems: test O_TMPFILE creation on idmapped mounts fs: refuse O_TMPFILE creation with an unmapped fsuid or fsgid Link: https://patch.msgid.link/20260615-work-idmapped-tmpfile-v1-0-754a94d81f83@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'drivers/gpu/nova-core/fsp/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions