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.
{
"cna_assigner": "zephyr",
"cwe_ids": [
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/10xxx/CVE-2026-10664.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "4.4.0"
},
{
"fixed": "4.6.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
]
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"last_affected": "4.4.0"
}
],
"source": "DESCRIPTION"
},
{
"range": [
{
"fixed": "a2c4324acd50a5f92e492e6e460e6297af826148"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-10664.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"102026523400821697410905590189733075523",
"111708990882566088079197044930985544345",
"281389369432030858900780008083038563379",
"196735785981533375378826523114802001642",
"11321799154403529978479468292015485785",
"309300752094325335203137467384515453152",
"197383214077835791469589302624659005132",
"243519203103853519329886977375262539608"
],
"threshold": 0.9
},
"id": "CVE-2026-10664-52221c39",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/a2c4324acd50a5f92e492e6e460e6297af826148",
"target": {
"file": "drivers/wifi/nrf_wifi/src/wifi_mgmt.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "329385089041008133627020313596950547625",
"length": 1558
},
"id": "CVE-2026-10664-c12eed80",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/a2c4324acd50a5f92e492e6e460e6297af826148",
"target": {
"file": "drivers/wifi/nrf_wifi/src/wifi_mgmt.c",
"function": "nrf_wifi_event_proc_get_power_save_info"
}
}
]
"2026-11-05T08:04:08Z"