CVE-2026-90017 PUBLISHED

staging: rtl8723bs: fix OOB read in rtw_action_frame_parse()

Assigner: Linux
Reserved: 11.09.2026 Published: 16.09.2026 Updated: 16.09.2026

In the Linux kernel, the following vulnerability has been resolved:

staging: rtl8723bs: fix OOB read in rtw_action_frame_parse()

rtw_action_frame_parse() takes a frame_len parameter but never actually checks it before indexing into the frame body:

<pre>const u8 *frame_body = frame + sizeof(struct ieee80211_hdr_3addr); ... c = frame_body[0]; ... a = frame_body[1]; </pre>

frame_body already points 24 bytes (sizeof(struct ieee80211_hdr_3addr)) into frame, so reading frame_body[0] and frame_body[1] requires frame_len >= 26. A management action frame shorter than that (e.g. exactly 24 bytes, the minimum a malicious peer can send) causes a 1-2 byte out-of-bounds read.

This is reachable from rtw_cfg80211_monitor_if_xmit_entry() and cfg80211_rtw_mgmt_tx() in ioctl_cfg80211.c, both of which pass attacker/user-influenced frame buffers and lengths straight through.

Add the missing length check before frame_body is dereferenced.

Metrics

CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
CVSS Score: 7.1

AV:A - rtw_action_frame_parse() is reached from rtw_cfg80211_rx_action() on received 802.11 public action frames (OnAction → on_action_public → on_action_public_default). A nearby attacker can inject a truncated management action frame over Wi-Fi; kernel CNA guidance maps Wi-Fi frame injection to Adjacent. AC:L - An adjacent attacker fully controls the action-frame length and 802.11 header. A 24- or 25-byte management action frame (header only, or header plus category) reliably hits the missing length check with no race or attacker-uncontrollable layout. PR:N - Public action frames are dispatched by mgt_dispatcher()/OnAction() with only a local-MAC match and no association or 802.11 authentication against the sender, so no local account or capability is required. UI:N - The rtl8723bs driver processes received management action frames automatically while the interface is up; no extra victim click, mount, or connect action is required at exploit time. S:U - The out-of-bounds read occurs in the host rtl8723bs driver and does not cross a VM, IOMMU, or other security-authority boundary. C:L - The flaw reads only one or two bytes past a truncated 24- or 25-byte action frame. Per kernel CNA guidance this is a strictly bounded out-of-bounds read, not an arbitrary read primitive. I:N - The bug is a read-only out-of-bounds access of the category/action bytes; those values are not used to write kernel memory or hijack control flow. A:H - A 1-2 byte kernel out-of-bounds read can oops or panic on KASAN, redzone, or hardened kernels, and an adjacent peer can repeat truncated action frames to deny availability.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to 15081ff835b29e456da29303b32efc436df04695 (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to 310aaa8058d19cc431aedac0f5bb814e84479393 (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to 1410bce22351ba15d8e58287cbf09d55d7f21fc9 (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to 0b7f64c7bb9664777168768c6b44affb07dcbf24 (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to 136f9a3ab87ded8aaf081425cfb2059659dd9023 (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to b041e3f35e0d262d42a711094ab594634d72744a (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to a54fd1a44862d263df9f8bc17fca3620be31addb (excl.)
  • affected from 554c0a3abf216c991c5ebddcdb2c08689ecd290b to ff917923f4fb9c83717ba135ee47d7e4c1567bb7 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.12 is affected
  • unaffected from 0 to 4.12 (excl.)
  • unaffected from 5.10.270 to 5.10.* (incl.)
  • unaffected from 5.15.221 to 5.15.* (incl.)
  • unaffected from 6.1.188 to 6.1.* (incl.)
  • unaffected from 6.6.157 to 6.6.* (incl.)
  • unaffected from 6.12.110 to 6.12.* (incl.)
  • unaffected from 6.18.51 to 6.18.* (incl.)
  • unaffected from 7.2.5 to 7.2.* (incl.)
  • unaffected from 7.3-rc2 to * (incl.)

References