CVE-2026-90221
N/A
N/A
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.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < baed3fdf6ed2195c56f25ae18a086b938dcd3983 | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < 2f434478771a4ebdd535033561c0590bcde39753 | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < 5487f04c1ccbfa15aa6e531eb1ec9c9ec9c7bf31 | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < bbe68e8249e2c76d65adfd9224fa95f1ca0fbe4e | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < 4f0483bbcdaccc9d4aee30df7351863334cecfa7 | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < 7d44b897bff84edcd4814899314d661ad4956a8e | affected |
| Linux | Linux | bcd684aace34fedbd473fbd9b21ed06b0c2d2212 < d56575a2595ee1f597f39e8a1cfb67ed3501678d | affected |
| Linux | Linux | 5.11 | affected |
| Linux | Linux | 0 < 5.11 | unaffected |
| Linux | Linux | 5.15.221 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.188 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.157 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.110 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.52 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.6 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/baed3fdf6ed2195c56f25ae18a086b938dcd3983
- https://git.kernel.org/stable/c/2f434478771a4ebdd535033561c0590bcde39753
- https://git.kernel.org/stable/c/5487f04c1ccbfa15aa6e531eb1ec9c9ec9c7bf31
- https://git.kernel.org/stable/c/bbe68e8249e2c76d65adfd9224fa95f1ca0fbe4e
- https://git.kernel.org/stable/c/4f0483bbcdaccc9d4aee30df7351863334cecfa7
- https://git.kernel.org/stable/c/7d44b897bff84edcd4814899314d661ad4956a8e
- https://git.kernel.org/stable/c/d56575a2595ee1f597f39e8a1cfb67ed3501678d
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.