net: usb: net1080: validate packet_len before pad-byte access in rx_fixup
- 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.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 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: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: net: usb: net1080: validate packet_len before pad-byte access in rx_fixup For an even packet_len, net1080_rx_fixup() reads the pad byte at skb->data[packet_len] before the skb->len != packet_len check further down, and packet_len is only bounded against NC_MAX_PACKET. A malicious NetChip 1080 device can send a short frame advertising a large even packet_len (e.g. 0x4000), so the pad-byte read lands past the end of the skb: BUG: KASAN: slab-out-of-bounds in net1080_rx_fixup Read of size 1 at addr ffff8880106c83c6 by task ksoftirqd/0/14 ... net1080_rx_fixup (drivers/net/usb/net1080.c:384) usbnet_bh (drivers/net/usb/usbnet.c:1589) process_one_work (kernel/workqueue.c:3322) bh_worker (kernel/workqueue.c:3708) tasklet_action (kernel/softirq.c:965) handle_softirqs (kernel/softirq.c:622) ... Reject the frame when packet_len >= skb->len before reading.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in f42217fa7d535e9ec4151f7971f06f6ea65e850a; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in c087749815379e9af2fdbeb08bfc33870b103958; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in e4a87126c085b097d29e17e3b7647295bba8be7c; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in 685e92934f11d5e215dad58813e2f9955ac2f436; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in 4dc8484be3302d187274364820d3bef6c62bde32; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in b153cfe84b1340c69a13d0957665a2bfcf21239c; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in ea866cab12db1a2100b400a8b03569e5bc0ee29a; From 904813cd8a0b334189da285bb05af0b18b062502 · fixed in 03f384bc0cb8d4a1301d4f5b0baef2d980258383
- Linux Linux
2.6.14
- KernelLinux
From 2.6.14 · fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5
References 8
git.kernel.org
- stable/c/f42217fa7d535e9ec4151f7971f06f6ea65e850a
- stable/c/c087749815379e9af2fdbeb08bfc33870b103958
- stable/c/e4a87126c085b097d29e17e3b7647295bba8be7c
- stable/c/685e92934f11d5e215dad58813e2f9955ac2f436
- stable/c/4dc8484be3302d187274364820d3bef6c62bde32
- stable/c/b153cfe84b1340c69a13d0957665a2bfcf21239c
- stable/c/ea866cab12db1a2100b400a8b03569e5bc0ee29a
- stable/c/03f384bc0cb8d4a1301d4f5b0baef2d980258383