Description
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.
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
1264b951463a00efebe1bb596499aaad620ec8af to < cb831aff2f850f72bc5ff5ad77d0a70bb5a84061affected1264b951463a00efebe1bb596499aaad620ec8af to < 4875680d1703f56afa6257ba30244f2fb44ed205affected1264b951463a00efebe1bb596499aaad620ec8af to < b406f33d234f98c8b310fdab5cbb492d85e98e49affected1264b951463a00efebe1bb596499aaad620ec8af to < e165a1d295e7e814e13b0f92c86e5d48309509ceaffected1264b951463a00efebe1bb596499aaad620ec8af to < bcde7249d45f52f994a9872bedf45994472ade77affected1264b951463a00efebe1bb596499aaad620ec8af to < fb1b50ab699211e777dca5ccfb648788b6a6e519affected1264b951463a00efebe1bb596499aaad620ec8af to < f742d9c98b5c504fc9e6744eef13a721c2aea486affected1264b951463a00efebe1bb596499aaad620ec8af to < 61a799ffd1e5a4fd3702d547828b7ff3d161468eaffected
Linux Linux
Default version status: affected
2.6.30affected0 to < 2.6.30unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/cb831aff2f850f72bc5ff5ad77d0a70bb5a84061 ↗
- https://git.kernel.org/stable/c/4875680d1703f56afa6257ba30244f2fb44ed205 ↗
- https://git.kernel.org/stable/c/b406f33d234f98c8b310fdab5cbb492d85e98e49 ↗
- https://git.kernel.org/stable/c/e165a1d295e7e814e13b0f92c86e5d48309509ce ↗
- https://git.kernel.org/stable/c/bcde7249d45f52f994a9872bedf45994472ade77 ↗
- https://git.kernel.org/stable/c/fb1b50ab699211e777dca5ccfb648788b6a6e519 ↗
- https://git.kernel.org/stable/c/f742d9c98b5c504fc9e6744eef13a721c2aea486 ↗
- https://git.kernel.org/stable/c/61a799ffd1e5a4fd3702d547828b7ff3d161468e ↗