]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
do_change_type(): refuse to operate on unmounted/not ours mounts
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 4 Jun 2025 16:27:08 +0000 (12:27 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:04:07 +0000 (11:04 +0100)
[ Upstream commit 12f147ddd6de7382dad54812e65f3f08d05809fc ]

Ensure that propagation settings can only be changed for mounts located
in the caller's mount namespace. This change aligns permission checking
with the rest of mount(2).

Reviewed-by: Christian Brauner <brauner@kernel.org>
Fixes: 07b20889e305 ("beginning of the shared-subtree proper")
Reported-by: "Orlando, Noah" <Noah.Orlando@deshaw.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/namespace.c

index 869cc6e06d889a117006b813683b70dcf0172a2f..2d5af6653cd1188d827f90c764cb4232cc79b2d4 100644 (file)
@@ -2308,6 +2308,10 @@ static int do_change_type(struct path *path, int ms_flags)
                return -EINVAL;
 
        namespace_lock();
+       if (!check_mnt(mnt)) {
+               err = -EINVAL;
+               goto out_unlock;
+       }
        if (type == MS_SHARED) {
                err = invent_group_ids(mnt, recurse);
                if (err)