]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pid: use ns_capable_noaudit() when determining net sysctl permissions
authorChristian Göttsche <cgzones@googlemail.com>
Wed, 10 Sep 2025 19:26:05 +0000 (21:26 +0200)
committerChristian Brauner <brauner@kernel.org>
Fri, 19 Sep 2025 11:08:31 +0000 (13:08 +0200)
The capability check should not be audited since it is only being used
to determine the inode permissions. A failed check does not indicate a
violation of security policy but, when an LSM is enabled, a denial audit
message was being generated.

The denial audit message can either lead to the capability being
unnecessarily allowed in a security policy, or being silenced potentially
masking a legitimate capability check at a later point in time.

Similar to commit d6169b0206db ("net: Use ns_capable_noaudit() when
determining net sysctl permissions")

Fixes: 7863dcc72d0f ("pid: allow pid_max to be set per pid namespace")
CC: Christian Brauner <brauner@kernel.org>
CC: linux-security-module@vger.kernel.org
CC: selinux@vger.kernel.org
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Acked-by: Serge Hallyn <serge@hallyn.com>
Reviewed-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
kernel/pid.c

index c45a28c16cd256024f5bc1fbc70dfc2a9431ca38..d94ce025050127ddefec328a319210669d214083 100644 (file)
@@ -680,7 +680,7 @@ static int pid_table_root_permissions(struct ctl_table_header *head,
                container_of(head->set, struct pid_namespace, set);
        int mode = table->mode;
 
-       if (ns_capable(pidns->user_ns, CAP_SYS_ADMIN) ||
+       if (ns_capable_noaudit(pidns->user_ns, CAP_SYS_ADMIN) ||
            uid_eq(current_euid(), make_kuid(pidns->user_ns, 0)))
                mode = (mode & S_IRWXU) >> 6;
        else if (in_egroup_p(make_kgid(pidns->user_ns, 0)))