linux/fs/overlayfs
Miklos Szeredi e91308e637 ovl: fail on invalid uid/gid mapping at copy up
commit 4f11ada10d upstream.

If st_uid/st_gid doesn't have a mapping in the mounter's user_ns, then
copy-up should fail, just like it would fail if the mounter task was doing
the copy using "cp -a".

There's a corner case where the "cp -a" would succeed but copy up fail: if
there's a mapping of the invalid uid/gid (65534 by default) in the user
namespace.  This is because stat(2) will return this value if the mapping
doesn't exist in the current user_ns and "cp -a" will in turn be able to
create a file with this uid/gid.

This behavior would be inconsistent with POSIX ACL's, which return -1 for
invalid uid/gid which result in a failed copy.

For consistency and simplicity fail the copy of the st_uid/st_gid are
invalid.

Fixes: 459c7c565a ("ovl: unprivieged mounts")
Cc: <stable@vger.kernel.org> # v5.11
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Seth Forshee <sforshee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-01 08:27:24 +01:00
..
Kconfig
Makefile
copy_up.c ovl: fail on invalid uid/gid mapping at copy up 2023-02-01 08:27:24 +01:00
dir.c ovl: Use ovl mounter's fsuid and fsgid in ovl_link() 2023-01-12 11:58:46 +01:00
export.c
file.c ovl: remove privs in ovl_fallocate() 2022-12-31 13:14:00 +01:00
inode.c
namei.c
overlayfs.h
ovl_entry.h
readdir.c
super.c ovl: fix use inode directly in rcu-walk mode 2022-12-31 13:14:47 +01:00
util.c