NULL-pointer dereference in MCUmgr serial/console SMP transport on buffer-pool exhaustion
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-476.
Summary
mcumgr_serial_process_frag() in subsys/mgmt/mcumgr/transport/src/serial_util.c calls net_buf_reset() on the result of smp_packet_alloc() before checking it for NULL. smp_packet_alloc() uses net_buf_alloc(K_NO_WAIT) against the shared MCUmgr packet pool (CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT, default 4), which returns NULL when the pool is exhausted. In default builds the __ASSERT_NO_MSG in net_buf_reset is a no-op, so net_buf_simple_reset writes through the NULL pointer (buf->len = 0; buf->data = buf->__buf), causing a fault/crash. The fragment data reaches this code from attacker-controlled bytes on the MCUmgr serial/UART/shell-console transports (smp_uart.c, smp_raw_uart.c, smp_shell.c), and a fresh buffer is allocated at the start of essentially every new packet. An attacker on the serial/console link can flood the transport to drive the 4-entry buffer pool to exhaustion and induce the NULL dereference, crashing the device (denial of service). The defect was introduced after the original MCUmgr rework and shipped in Zephyr v4.4.0. The fix moves the NULL check ahead of net_buf_reset.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| zephyrproject | zephyr | 4.4.0 to before 4.4.1 | 4.4.1 | Patch available | CNA |
- zephyr Vendorzephyrproject Affected 4.4.0 to before 4.4.1 Fixed in 4.4.1 Patch available CNA
CPE configurations NVD · 4
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:zephyrproject:zephyr:4.4.0:-:*:*:*:*:*:* | 4.4.0 | Vulnerable | zephyrproject |
| cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc1:*:*:*:*:*:* | 4.4.0 rc1 | Vulnerable | zephyrproject |
| cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc2:*:*:*:*:*:* | 4.4.0 rc2 | Vulnerable | zephyrproject |
| cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc3:*:*:*:*:*:* | 4.4.0 rc3 | Vulnerable | zephyrproject |
- cpe:2.3:o:zephyrproject:zephyr:4.4.0:-:*:*:*:*:*:* Versions 4.4.0 Vulnerable ·zephyrproject
- cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc1:*:*:*:*:*:* Versions 4.4.0 rc1 Vulnerable ·zephyrproject
- cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc2:*:*:*:*:*:* Versions 4.4.0 rc2 Vulnerable ·zephyrproject
- cpe:2.3:o:zephyrproject:zephyr:4.4.0:rc3:*:*:*:*:*:* Versions 4.4.0 rc3 Vulnerable ·zephyrproject
Remediation
- Fix · CNA zephyr (zephyrproject) Fixed in 4.4.1
Timeline
- 2026-10-02 Threatist record created from CVE-2026-10648
- 2026-10-16 Fix available: [email protected] · CNA
References
Exploit 1
Patch 1
More zephyrproject Zephyr vulnerabilities
- TI-2026-04422 Out-of-bounds read/write in HTTP WebSocket upgrade via non-null-terminated Sec-WebSocket-Key CVSS 3.1CRITICAL 9.8
- TI-2026-01361 dns: memory‑safety issue in the DNS name parser CVSS 3.1CRITICAL 9.8
- TI-2026-09174 Unterminated URI buffer causes out-of-bounds read in LwM2M firmware pull (Package URI) CVSS 3.1CRITICAL 9.1
- TI-2026-09168 Stack buffer overflow in `net_ipaddr_parse()` IPv4 address-with-port parsing in `subsys/net/ip/utils.c` CVSS 3.1CRITICAL 9.8
- TI-2024-09625 net: lib: http_server: Buffer Under-read CVSS 3.1HIGH 8.6
- TI-2021-02863 Usb bluetooth device ACL read cb buffer overflow CVSS 3.1CRITICAL 9.6
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences