staging: rtl8723bs: fix OOB read in rtw_restruct_wmm_ie()
- 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 6.6.160, 6.12.112, 6.18.52, 7.2.5
- 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
Summary
In the Linux kernel, the following vulnerability has been resolved: staging: rtl8723bs: fix OOB read in rtw_restruct_wmm_ie() rtw_restruct_wmm_ie() scans in_ie for a WMM IE with: while (i < in_len) { ... if (i + 5 < in_len && in_ie[i] == 0xDD && ...) { ... break; } i += (in_ie[i + 1] + 2); /* to the next IE element */ } When the "i + 5 < in_len" match check fails simply because i is within 5 bytes of the end of the buffer (i.e. no WMM IE was found near the tail of in_ie), execution falls through to "i += (in_ie[i + 1] + 2)", which reads in_ie[i + 1]. If i == in_len • 1 at that point, this is a 1-byte out-of-bounds read of an attacker-influenced IE buffer built from association/scan data. Commit a75281626fc8f ("staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie") added the "i + 5 < in_len" guard to the match condition itself, but did not add an equivalent guard before the fallthrough advance, so the same class of OOB read remained reachable through the non-matching path. Add an explicit bounds check before advancing to the next IE.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
4.12
- KernelLinux
From 4.12.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.5
References 8
git.kernel.org
- stable/c/0c1f8bada613edbd810d010996d36159092576d5
- stable/c/55034fa38bd8b302ceb32c15e8a98298f56f629b
- stable/c/a8d76480d1abbbf617c2d6d9f60bf95ab45cff04
- stable/c/716850842d2f103f915fe7c857ff1a0a036491b4
- stable/c/e63b72c5d7336981dfc05e5cb92becff29dfea00
- stable/c/4420cc71841b50e31a7868ef7acb011c0e08d294
- stable/c/fd19b8895f8a91087e8a62f1e27b128025dabb95
- stable/c/28a289beaf226b30b1e6e7d7b1a2946fe2d6e852