wifi: at76c50x-usb: avoid length underflow in at76_guess_freq()
- 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.265, 5.15.216, 6.1.183, 6.6.148, 6.12.101, 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: wifi: at76c50x-usb: avoid length underflow in at76_guess_freq() at76_guess_freq() checks only that the received frame is at least a bare 802.11 header (24 bytes) before subtracting the fixed management-body offset: len -= el_off; For both beacon and probe response frames, el_off is 36. If the frame is shorter than el_off, subtracting it causes the calculated IE length to wrap. The length is eventually passed to cfg80211_find_elem_match() as a very large unsigned value, so the element walk runs beyond the RX skb. This path is reached from at76_rx_tasklet() while scanning. If the device delivers a truncated beacon or probe response, the oversized IE length causes an out-of-bounds read during scanning. Skip the IE lookup if the frame does not reach the variable elements, before subtracting el_off.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in cb831aff2f850f72bc5ff5ad77d0a70bb5a84061; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in 4875680d1703f56afa6257ba30244f2fb44ed205; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in b406f33d234f98c8b310fdab5cbb492d85e98e49; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in e165a1d295e7e814e13b0f92c86e5d48309509ce; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in bcde7249d45f52f994a9872bedf45994472ade77; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in fb1b50ab699211e777dca5ccfb648788b6a6e519; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in f742d9c98b5c504fc9e6744eef13a721c2aea486; From 1264b951463a00efebe1bb596499aaad620ec8af · fixed in 61a799ffd1e5a4fd3702d547828b7ff3d161468e
- Linux Linux
2.6.30
- KernelLinux
From 2.6.30 · fixed in 5.10.265; From 5.11.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.148; From 6.7.0 · fixed in 6.12.101; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6
References 8
git.kernel.org
- stable/c/cb831aff2f850f72bc5ff5ad77d0a70bb5a84061
- stable/c/4875680d1703f56afa6257ba30244f2fb44ed205
- stable/c/b406f33d234f98c8b310fdab5cbb492d85e98e49
- stable/c/e165a1d295e7e814e13b0f92c86e5d48309509ce
- stable/c/bcde7249d45f52f994a9872bedf45994472ade77
- stable/c/fb1b50ab699211e777dca5ccfb648788b6a6e519
- stable/c/f742d9c98b5c504fc9e6744eef13a721c2aea486
- stable/c/61a799ffd1e5a4fd3702d547828b7ff3d161468e