nfsd: handle get_client_locked() failure in nfsd4_setclientid_confirm()
- 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.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, and 3 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: nfsd: handle get_client_locked() failure in nfsd4_setclientid_confirm() Lei Lu recently reported that nfsd4_setclientid_confirm() did not check the return value from get_client_locked(). a SETCLIENTID_CONFIRM could race with a confirmed client expiring and fail to get a reference. That could later lead to a UAF. Fix this by getting a reference early in the case where there is an extant confirmed client. If that fails then treat it as if there were no confirmed client found at all. In the case where the unconfirmed client is expiring, just fail and return the result from get_client_locked().
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 3f252a73e81aa01660cb426735eab932e6182e8d; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in d35ac850410966010e92f401f4e21868a9ea4d8b; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in f3aac6cf390d8b80e1d82975faf4ac61175519c0; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 22f45cedf281e6171817c8a3432c44d788c550e1; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in d71abd1ae4e0413707cd42b10c24a11d1aa71772; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 74ad36ed60df561a303a19ecef400c7096b20306; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 36e83eda90e0e4ac52f259f775b40b2841f8a0a3; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 571a5e46c71490285d2d8c06f6b5a7cbf6c7edd1; From d20c11d86d8f821a64eac7d6c8f296f06d935f4f · fixed in 908e4ead7f757504d8b345452730636e298cbf68
- Linux Linux
3.17
- KernelLinux
From 3.17.0 · fixed in 5.4.297; From 5.5.0 · fixed in 5.10.241; From 5.11.0 · fixed in 5.15.190; From 5.16.0 · fixed in 6.1.149; From 6.2.0 · fixed in 6.6.103; From 6.7.0 · fixed in 6.12.43; From 6.13.0 · fixed in 6.15.11; From 6.16.0 · fixed in 6.16.2
References 9
git.kernel.org
- stable/c/3f252a73e81aa01660cb426735eab932e6182e8d
- stable/c/d35ac850410966010e92f401f4e21868a9ea4d8b
- stable/c/f3aac6cf390d8b80e1d82975faf4ac61175519c0
- stable/c/22f45cedf281e6171817c8a3432c44d788c550e1
- stable/c/d71abd1ae4e0413707cd42b10c24a11d1aa71772
- stable/c/74ad36ed60df561a303a19ecef400c7096b20306
- stable/c/36e83eda90e0e4ac52f259f775b40b2841f8a0a3
- stable/c/571a5e46c71490285d2d8c06f6b5a7cbf6c7edd1
- stable/c/908e4ead7f757504d8b345452730636e298cbf68