nfc: nci: free skb on nci_transceive early error paths
- 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.253, 5.15.203, 6.1.167, 6.6.130, 6.12.77, 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
Summary
In the Linux kernel, the following vulnerability has been resolved: nfc: nci: free skb on nci_transceive early error paths nci_transceive() takes ownership of the skb passed by the caller, but the -EPROTO, -EINVAL, and -EBUSY error paths return without freeing it. Due to issues clearing NCI_DATA_EXCHANGE fixed by subsequent changes the nci/nci_dev selftest hits the error path occasionally in NIPA, and kmemleak detects leaks: unreferenced object 0xff11000015ce6a40 (size 640): comm "nci_dev", pid 3954, jiffies 4295441246 hex dump (first 32 bytes): 6b 6b 6b 6b 00 a4 00 0c 02 e1 03 6b 6b 6b 6b 6b kkkk.......kkkkk 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk backtrace (crc 7c40cc2a): kmem_cache_alloc_node_noprof+0x492/0x630 __alloc_skb+0x11e/0x5f0 alloc_skb_with_frags+0xc6/0x8f0 sock_alloc_send_pskb+0x326/0x3f0 nfc_alloc_send_skb+0x94/0x1d0 rawsock_sendmsg+0x162/0x4c0 do_syscall_64+0x117/0xfc0
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in b367cb44d919f35b07cd56feffa15e68cd9f53f9; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 6d898f943766440cf766d30364e715111c3563b5; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 33f6b8a96dda045789796c3bcb451c74ac158039; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in dcbcccfc5195c9caaa4bb8d31f23c345f00a9e89; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 3245801d44a44c090acefe19a12d22d12cac45c5; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 9d448bbab724b94d6c561e1f314656f5b88a7cb3; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 54f7f0eaafa56b5994cdb5c7967946922c2e1d22; From 6a2968aaf50c7a22fced77a5e24aa636281efca8 · fixed in 7bd4b0c4779f978a6528c9b7937d2ca18e936e2c
- Linux Linux
3.2
- KernelLinux
From 3.2.0 · fixed in 5.10.253; From 5.11.0 · fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.77; From 6.13.0 · fixed in 6.18.17; From 6.19.0 · fixed in 6.19.7
References 8
git.kernel.org
- stable/c/b367cb44d919f35b07cd56feffa15e68cd9f53f9
- stable/c/6d898f943766440cf766d30364e715111c3563b5
- stable/c/33f6b8a96dda045789796c3bcb451c74ac158039
- stable/c/dcbcccfc5195c9caaa4bb8d31f23c345f00a9e89
- stable/c/3245801d44a44c090acefe19a12d22d12cac45c5
- stable/c/9d448bbab724b94d6c561e1f314656f5b88a7cb3
- stable/c/54f7f0eaafa56b5994cdb5c7967946922c2e1d22
- stable/c/7bd4b0c4779f978a6528c9b7937d2ca18e936e2c