nfc: nci: fix use of uninitialized memory in CORE_INIT_RSP parsing
- 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.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 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
Summary
In the Linux kernel, the following vulnerability has been resolved: nfc: nci: fix use of uninitialized memory in CORE_INIT_RSP parsing nci_core_init_rsp_packet_v1() and nci_core_init_rsp_packet_v2() parse the CORE_INIT_RSP packet without validating that the skb contains enough data. A malformed response (e.g. injected via virtual_ncidev) can declare a large num_supported_rf_interfaces while providing insufficient data, causing reads of uninitialized slab memory. This is later used in nci_init_complete_req(), triggering a KMSAN uninit-value warning. Add skb length checks before accessing packet fields: • Validate the skb has at least 1 byte for the status field. • Validate the skb can hold the fixed-size header before parsing. • In v2, bounds-check each variable-length rf_interface entry and its extension parameters within the parsing loop. • In v1, verify the skb is large enough for both the variable-length rf_interfaces array and the trailing rsp_2 structure.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in baed3fdf6ed2195c56f25ae18a086b938dcd3983; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in 2f434478771a4ebdd535033561c0590bcde39753; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in 5487f04c1ccbfa15aa6e531eb1ec9c9ec9c7bf31; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in bbe68e8249e2c76d65adfd9224fa95f1ca0fbe4e; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in 4f0483bbcdaccc9d4aee30df7351863334cecfa7; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in 7d44b897bff84edcd4814899314d661ad4956a8e; From bcd684aace34fedbd473fbd9b21ed06b0c2d2212 · fixed in d56575a2595ee1f597f39e8a1cfb67ed3501678d
- Linux Linux
5.11
- KernelLinux
From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6
References 7
git.kernel.org
- stable/c/baed3fdf6ed2195c56f25ae18a086b938dcd3983
- stable/c/2f434478771a4ebdd535033561c0590bcde39753
- stable/c/5487f04c1ccbfa15aa6e531eb1ec9c9ec9c7bf31
- stable/c/bbe68e8249e2c76d65adfd9224fa95f1ca0fbe4e
- stable/c/4f0483bbcdaccc9d4aee30df7351863334cecfa7
- stable/c/7d44b897bff84edcd4814899314d661ad4956a8e
- stable/c/d56575a2595ee1f597f39e8a1cfb67ed3501678d