selinux: preserve NATIVE_LABELS on already-initialized sb in set_mnt_opts
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.57, 7.2.11
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: selinux: preserve NATIVE_LABELS on already-initialized sb in set_mnt_opts When an NFSv4 filesystem exported with security_label is mounted a second time, sget_fc() returns the existing superblock and nfs_get_root() calls security_sb_set_mnt_opts() again on it. Since the superblock is already SB_INITIALIZED, selinux_set_mnt_opts() takes an early exit without setting SECURITY_LSM_NATIVE_LABELS in *set_kern_flags. nfs_get_root() then sees kflags without SECURITY_LSM_NATIVE_LABELS set and clears NFS_CAP_SECURITY_LABEL on the shared nfs_server, silently disabling per-file labeling for both the new and the original mount. Commit 3815a245b501 ("security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock") fixed the same problem in selinux_sb_clone_mnt_opts(). The reused-superblock path for a plain second mount now goes through sb_set_mnt_opts rather than sb_clone_mnt_opts, so it needs the same treatment: on both SE_SBINITIALIZED early exits, set SECURITY_LSM_NATIVE_LABELS in *set_kern_flags when the superblock was already using SECURITY_FS_USE_NATVE.
Timeline
- CVE published
- First seen by cve.now
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
3.11
- KernelLinux
From 3.11.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.11
References 8
git.kernel.org
- stable/c/22987d24a159ed7df3cdc9090ca5d61e58df0cac
- stable/c/2f0f1f5a3b89c1ed67e39be49d29ee7f5c96e039
- stable/c/dc579e43b13cb65e55eabaae4f1a950e43567fb1
- stable/c/a545def625860d4ccedc14fe45e884a62a041cef
- stable/c/a6da93c625b3557dd23ff6db45d2d1bafeae1565
- stable/c/5509d498e1b9edafebd5a60ba3cb9ecfda23dc2b
- stable/c/c997832414f1d846de0a1fa38d7d4f62ba2ea917
- stable/c/28b7260548af3d35773477993ad4e4de41578dd7