staging: rtl8723bs: fix OOB read in update_beacon_info() IE loop
- 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.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, and 1 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: staging: rtl8723bs: fix OOB read in update_beacon_info() IE loop The IE parsing loop in update_beacon_info() advances by (pIE->length + 2) each iteration but only guards on i < len. When a malicious AP sends a Beacon whose last IE has only one byte remaining in the frame (the element_id byte lands at len-1), the loop reads pIE->length from one byte past the allocated receive buffer. Additionally, even when the header bytes are in bounds, pIE->length itself can extend the data window beyond len, passing a truncated IE to the handler functions. Add two guards at the top of the loop body: 1. Break if fewer than sizeof(*pIE) bytes remain (can't read header). 2. Break if the IE's declared data extends past len. Also replace i += (pIE->length + 2) with i += sizeof(*pIE) + pIE->length for consistency with the sizeof(*pIE) guards added above.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in 5e8db4cff5b45c7c4edc8ae3f302027c3bb32b25; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in 6dd5e8c3011ebabf417257d7f07901a7c4311539; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in 9193c34f75fd9e1ea8a590d7cced464c3380dc29; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in bd953d52d587d42365e399b96c52dbdb13032070; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in 69f174a0673b6b7a29b851adb60bc450cdc0ecc4; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in b5cc2f999927f69723ca53f1f2a3aa37dbeda907; From 554c0a3abf216c991c5ebddcdb2c08689ecd290b · fixed in ed51de4a86e173c3b0ef78e039c2e49e08b11f16
- Linux Linux
4.12
- KernelLinux
From 4.12.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.96; From 6.13.0 · fixed in 6.18.39; From 6.19.0 · fixed in 7.1.4
References 7
git.kernel.org
- stable/c/5e8db4cff5b45c7c4edc8ae3f302027c3bb32b25
- stable/c/6dd5e8c3011ebabf417257d7f07901a7c4311539
- stable/c/9193c34f75fd9e1ea8a590d7cced464c3380dc29
- stable/c/bd953d52d587d42365e399b96c52dbdb13032070
- stable/c/69f174a0673b6b7a29b851adb60bc450cdc0ecc4
- stable/c/b5cc2f999927f69723ca53f1f2a3aa37dbeda907
- stable/c/ed51de4a86e173c3b0ef78e039c2e49e08b11f16