Description
In the Linux kernel, the following vulnerability has been resolved: net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup ax88179_rx_fixup() contains several out-of-bounds accesses that can be triggered by a malicious (or defective) USB device, in particular: - The metadata array (hdr_off..hdr_off+2*pkt_cnt) can be out of bounds, causing OOB reads and (on big-endian systems) OOB endianness flips. - A packet can overlap the metadata array, causing a later OOB endianness flip to corrupt data used by a cloned SKB that has already been handed off into the network stack. - A packet SKB can be constructed whose tail is far beyond its end, causing out-of-bounds heap data to be considered part of the SKB's data. I have tested that this can be used by a malicious USB device to send a bogus ICMPv6 Echo Request and receive an ICMPv6 Echo Reply in response that contains random kernel heap data. It's probably also possible to get OOB writes from this on a little-endian system somehow - maybe by triggering skb_cow() via IP options processing -, but I haven't tested that.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 711b6bf3fb052f0a6b5b3205d50e30c0c2980382affectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 63f0cfb36c1f1964a59ce544156677601e2d8740affectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 1668781ed24da43498799aa4f65714a7de201930affectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < a0fd5492ee769029a636f1fb521716b022b1423daffectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 758290defe93a865a2880d10c5d5abd288b64b5daffectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < ffd0393adcdcefab7e131488e10dcfde5e02d6ebaffectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 9681823f96a811268265f35307072ad80713c274affectede2ca90c276e1fc410d7cd3c1a4eee245ec902a20 to < 57bc3d3ae8c14df3ceb4e17d26ddf9eeab304581affected
Linux Linux
Default version status: affected
3.9affected0 to < 3.9unaffected4.9.303 to ≤ 4.9.*unaffected4.14.268 to ≤ 4.14.*unaffected4.19.231 to ≤ 4.19.*unaffected5.4.180 to ≤ 5.4.*unaffected5.10.101 to ≤ 5.10.*unaffected5.15.24 to ≤ 5.15.*unaffected5.16.10 to ≤ 5.16.*unaffected5.17 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/711b6bf3fb052f0a6b5b3205d50e30c0c2980382 ↗
- https://git.kernel.org/stable/c/63f0cfb36c1f1964a59ce544156677601e2d8740 ↗
- https://git.kernel.org/stable/c/1668781ed24da43498799aa4f65714a7de201930 ↗
- https://git.kernel.org/stable/c/a0fd5492ee769029a636f1fb521716b022b1423d ↗
- https://git.kernel.org/stable/c/758290defe93a865a2880d10c5d5abd288b64b5d ↗
- https://git.kernel.org/stable/c/ffd0393adcdcefab7e131488e10dcfde5e02d6eb ↗
- https://git.kernel.org/stable/c/9681823f96a811268265f35307072ad80713c274 ↗
- https://git.kernel.org/stable/c/57bc3d3ae8c14df3ceb4e17d26ddf9eeab304581 ↗