Severity by source
AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Adjacent vector captures co-processor/AP indirect path; AC:H reflects multi-step rogue-AP-to-firmware manipulation required; C:L for OOB read, I:L/A:L for stack corruption.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
Lifecycle Timeline
1DescriptionCVE.org
The nRF70 Wi-Fi driver's power-save event handler nrf_wifi_event_proc_get_power_save_info() in drivers/wifi/nrf_wifi/src/wifi_mgmt.c copied TWT (Target Wake Time) flow entries from an nrf_wifi_umac_event_power_save_info event into the fixed-size twt_flows[WIFI_MAX_TWT_FLOWS] (8-element) array of a caller-supplied struct wifi_ps_config, looping over event-provided num_twt_flows without validating it against WIFI_MAX_TWT_FLOWS or checking event_len. When num_twt_flows exceeds 8, the handler writes past the destination array (which is typically on the caller's stack, e.g. the wifi ps shell command) -- an out-of-bounds write of ~40-byte TWT entries -- and reads twt_flow_info[i] past the event buffer. The event is delivered by the nRF70 co-processor firmware in response to a host-initiated power-save GET, so reaching the overflow requires the firmware to emit a malformed or out-of-range event; the trust boundary is host-to-trusted-coprocessor rather than a direct remote-AP write, with over-the-air influence on the flow count being indirect and bounded by the 3-bit TWT flow-id space. Affected: builds with CONFIG_NRF70_STA_MODE on releases through v4.4.0. The fix rejects events with num_twt_flows > WIFI_MAX_TWT_FLOWS or with event_len shorter than the claimed entries, and adds a NULL check on the caller buffer.
AnalysisAI
Out-of-bounds stack write in Zephyr's nRF70 Wi-Fi driver exposes embedded systems to memory corruption when the nRF70 co-processor returns a power-save event with more than eight TWT flow entries. The vulnerable function nrf_wifi_event_proc_get_power_save_info() blindly copies co-processor-supplied TWT entries into a fixed 8-element stack array without validating num_twt_flows against WIFI_MAX_TWT_FLOWS, enabling heap/stack corruption of approximately 40 bytes per excess entry. No public exploit code exists and the flaw is not listed in CISA KEV, but the adjacent-network attack vector and the indirect over-the-air influence path via a rogue AP manipulating TWT sessions make this a meaningful risk in Wi-Fi 6 (802.11ax) deployment environments running Zephyr with CONFIG_NRF70_STA_MODE.
Technical ContextAI
Target Wake Time (TWT) is an 802.11ax (Wi-Fi 6) power-management protocol allowing stations to negotiate scheduled wake windows with an AP. The Zephyr RTOS nRF70 Wi-Fi driver (CPE: cpe:2.3:a:zephyrproject:zephyr) offloads Wi-Fi stack processing to the Nordic nRF70 series co-processor; the host driver consumes structured UMAC events from that co-processor. The root cause is CWE-787 (Out-of-Bounds Write): nrf_wifi_event_proc_get_power_save_info() in drivers/wifi/nrf_wifi/src/wifi_mgmt.c iterates num_twt_flows times, copying each twt_flow_info[i] entry into wifi_ps_config.twt_flows[], a statically-sized 8-element array (WIFI_MAX_TWT_FLOWS = 8). Neither the loop count nor the event buffer length (event_len) is validated, so a co-processor event advertising more than eight flows causes an OOB write beyond the destination array (typically on the caller's stack, e.g., the wifi ps shell command) and an OOB read past the end of the event buffer. The fix (commit a2c4324) adds a bounds check rejecting num_twt_flows > WIFI_MAX_TWT_FLOWS and a length check on event_len, plus a NULL guard on the caller buffer.
RemediationAI
Integrate the upstream fix commit a2c4324acd50a5f92e492e6e460e6297af826148 from https://github.com/zephyrproject-rtos/zephyr/commit/a2c4324acd50a5f92e492e6e460e6297af826148 - this patch rejects events with num_twt_flows > WIFI_MAX_TWT_FLOWS, validates event_len against the claimed entry count, and adds a NULL check on the destination buffer, fully closing the overflow. If integrating the patch immediately is not feasible, a targeted compensating control is to disable TWT support at build time by omitting CONFIG_NRF70_STA_MODE or disabling TWT negotiation at runtime, though this sacrifices Wi-Fi 6 power-save efficiency on battery-constrained devices. An additional network-level mitigation is to restrict device connectivity to trusted, enterprise-managed APs that reject anomalous TWT flow counts, though this does not eliminate risk from a compromised co-processor. Monitor GHSA-3r6j-pm38-r43m at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-3r6j-pm38-r43m for an official tagged release incorporating the fix.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Memory Corruption
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43241