Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: wifi: ath6kl: clamp assoc request/response lengths before subtracting IE offsets ath6kl_cfg80211_connect_event() subtracts fixed IE offsets from assoc_req_len (-= 4) and assoc_resp_len (-= 6), both u8, with no lower bound. The aggregate check recently added to ath6kl_wmi_connect_event_rx() bounds the declared lengths from above (their sum must fit the received event), but an assoc request/response shorter than its fixed offset still underflows here: the u8 wraps to ~250, and cfg80211_connect_result() / cfg80211_roamed() then treat that wrapped value as the IE length and copy that many bytes out of the small assoc_info buffer to user space via nl80211, disclosing adjacent slab memory. Clamp both lengths to their offsets before subtracting. Found by 0sec (https://0sec.ai) using automated source analysis; the missing lower bound is evident from source. Compile-tested.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected bdcd81707973cf8aa9305337166f8ee842a050d4 before 225587bdbf4b0eb5265a71ee4dc183561a1857fc; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before d337213a889705a69735079606d0b4c672b17605; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before e11d5ae96d5e52cb48fa27c6ad352d766d0322fb; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before 6deb4d7a0c3d91821b2a8d5239e3d9933d9217d9; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before e3619bed5da125713b29ac881dc66f5e06606f88; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before e1330d719c047c4d8190a16be034b29fc601a815; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before 8eb73016fb3968cf2db3987a92764563a3af773a; affected bdcd81707973cf8aa9305337166f8ee842a050d4 before 3bbd05723d15dd06f0560bcd94fbf9a91b5f5613 |
| Linux / Linux | affected 3.2; unaffected 0 before 3.2; unaffected 5.10.270 through 5.10.*; unaffected 5.15.221 through 5.15.*; unaffected 6.1.188 through 6.1.*; unaffected 6.6.157 through 6.6.*; unaffected 6.12.109 through 6.12.*; unaffected 6.18.50 through 6.18.*; unaffected 7.2.4 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/225587bdbf4b0eb5265a71ee4dc183561a1857fc
- https://git.kernel.org/stable/c/d337213a889705a69735079606d0b4c672b17605
- https://git.kernel.org/stable/c/e11d5ae96d5e52cb48fa27c6ad352d766d0322fb
- https://git.kernel.org/stable/c/6deb4d7a0c3d91821b2a8d5239e3d9933d9217d9
- https://git.kernel.org/stable/c/e3619bed5da125713b29ac881dc66f5e06606f88
- https://git.kernel.org/stable/c/e1330d719c047c4d8190a16be034b29fc601a815
- https://git.kernel.org/stable/c/8eb73016fb3968cf2db3987a92764563a3af773a
- https://git.kernel.org/stable/c/3bbd05723d15dd06f0560bcd94fbf9a91b5f5613