CVE-2026-10648: memory-safety in zephyrproject zephyr
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.
AI Analysis
Technical Summary
In Zephyr v4.4.0, the mcumgr_serial_process_frag() function in the MCUmgr serial transport calls net_buf_reset() on the result of smp_packet_alloc() without verifying if the allocation returned NULL. Since smp_packet_alloc() uses net_buf_alloc(K_NO_WAIT) on a limited shared buffer pool (default size 4), exhaustion of this pool causes net_buf_alloc() to return NULL. net_buf_reset() then writes through this NULL pointer, causing a crash. An attacker controlling the serial/UART/shell-console input can flood the transport to exhaust the buffer pool and trigger this NULL dereference, resulting in denial of service. The vulnerability was introduced after the original MCUmgr rework and shipped in Zephyr 4.4.0. The fix involves adding a NULL check before calling net_buf_reset().
Potential Impact
This vulnerability allows an attacker with access to the MCUmgr serial or console transport to cause a denial of service by crashing the device through a NULL pointer dereference. There is no impact on confidentiality or integrity, but availability is affected due to the forced crash.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The fix described moves the NULL check ahead of net_buf_reset() to prevent the NULL pointer dereference. Until an official patch or update is available, restrict access to the MCUmgr serial/UART/shell-console interfaces to trusted users to prevent exploitation.
CVE-2026-10648: memory-safety in zephyrproject zephyr
Description
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.
CVSS v3.1
Score 6.2medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In Zephyr v4.4.0, the mcumgr_serial_process_frag() function in the MCUmgr serial transport calls net_buf_reset() on the result of smp_packet_alloc() without verifying if the allocation returned NULL. Since smp_packet_alloc() uses net_buf_alloc(K_NO_WAIT) on a limited shared buffer pool (default size 4), exhaustion of this pool causes net_buf_alloc() to return NULL. net_buf_reset() then writes through this NULL pointer, causing a crash. An attacker controlling the serial/UART/shell-console input can flood the transport to exhaust the buffer pool and trigger this NULL dereference, resulting in denial of service. The vulnerability was introduced after the original MCUmgr rework and shipped in Zephyr 4.4.0. The fix involves adding a NULL check before calling net_buf_reset().
Potential Impact
This vulnerability allows an attacker with access to the MCUmgr serial or console transport to cause a denial of service by crashing the device through a NULL pointer dereference. There is no impact on confidentiality or integrity, but availability is affected due to the forced crash.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. The fix described moves the NULL check ahead of net_buf_reset() to prevent the NULL pointer dereference. Until an official patch or update is available, restrict access to the MCUmgr serial/UART/shell-console interfaces to trusted users to prevent exploitation.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-06-02T15:11:51.742Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a42fdfe27e9c79719ad118f
Added to database: 06/29/2026, 23:21:34 UTC
Last enriched: 07/15/2026, 10:46:57 UTC
Last updated: 08/14/2026, 00:41:09 UTC
Views: 147
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.