CVE-2026-14366
Received Received - Intake

Use-After-Free in Silicon Labs SiWx917 WiFi Driver

Vulnerability report for CVE-2026-14366, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-31

Last updated on: 2026-08-31

Assigner: Zephyr Project

Description

The Silicon Labs SiWx917 WiFi driver's transmit callback siwx91x_send() in drivers/wifi/siwx91x/siwx91x_wifi.c frees a network packet it does not own. In the Zephyr TX path the net_pkt is owned by the L2/networking stack; the driver only borrows it to copy the frame bytes into a local net_buf. Before the fix, after transmitting, siwx91x_send() additionally called net_pkt_unref(pkt) on the caller-owned packet, dropping its last reference and returning it to the shared packet pool prematurely. This code path is compiled in by default (CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_NATIVE). The caller, ethernet_send() in subsys/net/l2/ethernet/ethernet.c, keeps using the packet after the driver returns: it reads net_pkt_get_len(pkt), updates TX statistics, and then performs its own net_pkt_unref(pkt). Because the driver already released the packet, these are use-after-free reads followed by a second unref (a double free). When concurrent network activity recycles the freed slab slot between the two unrefs, the trailing unref decrements a different, live packet's reference count and frees it, corrupting the net_pkt pool shared by both the receive and transmit paths. The defect is exercised by ordinary transmission over the native-stack SiWx917 WiFi interface, and an adjacent attacker on the same WiFi network can induce transmissions (for example ARP or ICMP echo replies, or TCP handshakes) to drive the path. The primary observable impact is loss of availability (transmit hangs and crashes from pool corruption), with race-dependent memory corruption of the kernel networking buffer pool. The fix removes the erroneous net_pkt_unref(pkt) from siwx91x_send(); the driver's receive-path unref, which correctly frees a packet the driver itself allocated, is unaffected.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-31
Last Modified
2026-08-31
Generated
2026-08-31
AI Q&A
2026-08-31
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
silicon_labs siwx917 *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-416 The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a use-after-free and double-free flaw in the Silicon Labs SiWx917 WiFi driver for Zephyr RTOS. The driver's transmit function siwx91x_send() incorrectly frees a network packet it does not own after transmission, returning it to the shared pool prematurely. The caller then continues using the packet, causing use-after-free reads and a second unref that corrupts the net_pkt pool.

Detection Guidance

This vulnerability is specific to the Silicon Labs SiWx917 WiFi driver in Zephyr RTOS versions 4.1.0 to 4.4.1. Detection requires checking the driver version and code. Use commands like 'git log --oneline --grep=siwx91x' or 'grep -r 'siwx91x_send' /path/to/zephyr' to inspect the driver code for the erroneous net_pkt_unref call.

Impact Analysis

The vulnerability can cause transmit hangs, crashes, and memory corruption in the kernel networking buffer pool. An adjacent attacker on the same WiFi network can trigger transmissions to exploit this, leading to loss of availability and potential system instability.

Mitigation Strategies

Upgrade to Zephyr RTOS version 4.4.2 or later where the fix is included. If upgrading is not immediately possible, remove the erroneous net_pkt_unref(pkt) call from the siwx91x_send() function in drivers/wifi/siwx91x/siwx91x_wifi.c and rebuild the system.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-14366. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart