]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pidfs: raise SB_I_NODEV and SB_I_NOEXEC
authorChristian Brauner <brauner@kernel.org>
Wed, 18 Jun 2025 20:53:35 +0000 (22:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:40:55 +0000 (18:40 +0200)
[ Upstream commit 1a1ad73aa1a66787f05f7f10f686b74bab77be72 ]

Similar to commit 1ed95281c0c7 ("anon_inode: raise SB_I_NODEV and SB_I_NOEXEC"):
it shouldn't be possible to execute pidfds via
execveat(fd_anon_inode, "", NULL, NULL, AT_EMPTY_PATH)
so raise SB_I_NOEXEC so that no one gets any creative ideas.

Also raise SB_I_NODEV as we don't expect or support any devices on pidfs.

Link: https://lore.kernel.org/20250618-work-pidfs-persistent-v2-1-98f3456fd552@kernel.org
Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/pidfs.c

index 4625e097e3a0c0516ce50645f9cbbd8abd67684f..4c551bfa8927f1c4cce840457e19c496224c8e25 100644 (file)
@@ -891,6 +891,8 @@ static int pidfs_init_fs_context(struct fs_context *fc)
        if (!ctx)
                return -ENOMEM;
 
+       fc->s_iflags |= SB_I_NOEXEC;
+       fc->s_iflags |= SB_I_NODEV;
        ctx->ops = &pidfs_sops;
        ctx->eops = &pidfs_export_operations;
        ctx->dops = &pidfs_dentry_operations;