ntfs3: reject direct userspace writes to reserved $LX* xattrs
- 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 5.15.211, 6.1.177, 6.6.144, 6.12.95, 6.18.38, and 1 more
- 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: ntfs3: reject direct userspace writes to reserved $LX* xattrs NTFS3 uses $LXUID, $LXGID, $LXMOD and $LXDEV as internal WSL permission metadata and reloads them into i_uid, i_gid and i_mode from ntfs_get_wsl_perm(). Because the empty-prefix xattr handler also lets file owners call setxattr() on these names directly, an unprivileged writer on a writable ntfs3 mount can plant root ownership and S_ISUID on their own file and gain euid 0 after inode reload. Reject direct userspace writes to the reserved $LX* names. Internal ntfs3 metadata updates are unchanged because ntfs_save_wsl_perm() writes them via ntfs_set_ea() directly. [almaz.alexandrovich@paragon-software.com: added an additional check for non privileged users]
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in e574af95234afc3c725988bbc1fdeb46b9f386a4; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in 2c3cd6da4a14380ef79e34bd9dff7caf46687477; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in e8852ae29868e449fdb47eebc28f35fb80741a5f; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in f8d420949b335a4b51d06ab276beee6b8dfdc909; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in 5e658b9245a52d838ef93729a7bc07de8e19deb7; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in 293a84fa40b3a1b3471c0545722724bc10973f76; From be71b5cba2e6485e8959da7a9f9a44461a1bb074 · fixed in 5b08dccecf825cbf905f348bc6ccb497507e28e2
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 5.15.211; From 5.16.0 · fixed in 6.1.177; From 6.2.0 · fixed in 6.6.144; From 6.7.0 · fixed in 6.12.95; From 6.13.0 · fixed in 6.18.38; From 6.19.0 · fixed in 7.1.3
References 7
git.kernel.org
- stable/c/e574af95234afc3c725988bbc1fdeb46b9f386a4
- stable/c/2c3cd6da4a14380ef79e34bd9dff7caf46687477
- stable/c/e8852ae29868e449fdb47eebc28f35fb80741a5f
- stable/c/f8d420949b335a4b51d06ab276beee6b8dfdc909
- stable/c/5e658b9245a52d838ef93729a7bc07de8e19deb7
- stable/c/293a84fa40b3a1b3471c0545722724bc10973f76
- stable/c/5b08dccecf825cbf905f348bc6ccb497507e28e2