NFSD: Fix SECINFO_NO_NAME decode error cleanup
- 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.10.260, 5.15.211, 6.1.177, 6.6.144, 6.12.95, and 2 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: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: NFSD: Fix SECINFO_NO_NAME decode error cleanup nfsd4_decode_secinfo_no_name() currently initializes sin_exp after decoding sin_style. If the XDR stream is truncated, the decoder returns nfserr_bad_xdr before sin_exp is initialized. Since commit 3fdc54646234 ("NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing"), the inline iops array is not cleared between RPC calls. A failed SECINFO_NO_NAME decode can therefore leave sin_exp holding stale union contents from a previous operation. The error response path still invokes nfsd4_secinfo_no_name_release(), which calls exp_put() on a non-NULL sin_exp. Initialize sin_exp before the first failable decode step, matching nfsd4_decode_secinfo().
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 5e76b25d7cc82c148d391c0c43b884e6427cb302 · fixed in 8836405abdc53ca3dd5fc68b2cf6f8f012fad011; From 07b68ff5c71cf4ed5443016d8eb116863c0a4d88 · fixed in 49de5d31dd8fdebf78bdeaf196b0ca5cd5c75439; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in 5ec37edcb534f3fc92304be236d37f08e6545585; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in 1e04be34cafae119e82bcaccd6d28a20f72a3647; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in 161d1aaeb04d620d3692639700512bb5038c1e10; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in c8a24effd96d4779e2ad779654682304491c55a5; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in 46eb17d45be69d28c7a23ea03283b207426a8232; From 3fdc546462348b8a497c72bc894e0cde9f10fc40 · fixed in 9e18e83b8846a5c3fe13fc8a464b4865d33996c6; From 5.10.220 · fixed in 5.10.260; From 5.15.154 · fixed in 5.15.211
- Linux Linux
6.1
- KernelLinux
fixed in 5.10.260; From 5.11.0 · fixed in 5.15.211; From 5.16.0 · fixed in 6.1.177; From 6.1.0 · fixed in 6.6.144; From 6.2.0 · fixed in 6.12.95; From 6.7.0 · fixed in 6.18.38; From 6.13.0 · fixed in 7.1.3
References 8
git.kernel.org
- stable/c/8836405abdc53ca3dd5fc68b2cf6f8f012fad011
- stable/c/49de5d31dd8fdebf78bdeaf196b0ca5cd5c75439
- stable/c/5ec37edcb534f3fc92304be236d37f08e6545585
- stable/c/1e04be34cafae119e82bcaccd6d28a20f72a3647
- stable/c/161d1aaeb04d620d3692639700512bb5038c1e10
- stable/c/c8a24effd96d4779e2ad779654682304491c55a5
- stable/c/46eb17d45be69d28c7a23ea03283b207426a8232
- stable/c/9e18e83b8846a5c3fe13fc8a464b4865d33996c6