CVE-2024-46695CWE-276

CVE-2024-46695

Critical · published September 13, 2024

CVSS v3.1
9.8
EPSS
1%
Percentile
44.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

selinux,smack: don't bypass permissions check in inode_setsecctx hook

Marek Gresko reports that the root user on an NFS client is able to

change the security labels on files on an NFS filesystem that is

exported with root squashing enabled.

The end of the kerneldoc comment for __vfs_setxattr_noperm() states:

* This function requires the caller to lock the inode's i_mutex before it

* is executed. It also assumes that the caller will make the appropriate

* permission checks.

nfsd_setattr() does do permissions checking via fh_verify() and

nfsd_permission(), but those don't do all the same permissions checks

that are done by security_inode_setxattr() and its related LSM hooks do.

Since nfsd_setattr() is the only consumer of security_inode_setsecctx(),

simplest solution appears to be to replace the call to

__vfs_setxattr_noperm() with a call to __vfs_setxattr_locked(). This

fixes the above issue and has the added benefit of causing nfsd to

recall conflicting delegations on a file when a client tries to change

its security label.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00531 · 44.1th percentile
Weakness
CWE-276 · Incorrect Default Permissions
Published
2024-09-13T10:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel< 6.6.496.6.49
linux/linux_kernel≥ 6.7, < 6.10.86.10.8
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 13 SEP 05:29Z
    selinux,smack: don't bypass permissions check in inode_setsecctx hook
    cvelistv5