Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-10647— Deadlock denial of service in USB CDC-NCM device class on TX enqueue failure

CVSS 5.3 · Medium EPSS 0.13% · P3

Possible ATT&CK Techniques 1AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 1

VendorProductVersion RangeStatus
zephyrprojectzephyr4.1.0< 4.5.0affected
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2026-10647

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Deadlock denial of service in USB CDC-NCM device class on TX enqueue failure
Source: NVD (National Vulnerability Database)
Vulnerability Description
The USB CDC-NCM device class (subsys/usb/device_next/class/usbd_cdc_ncm.c) ignores the return value of usbd_ep_enqueue() in its ethernet transmit callback cdc_ncm_send(). When the enqueue fails, the function still calls k_sem_take(&data->sync_sem, K_FOREVER), blocking on a completion semaphore that is only ever signaled from the bulk-IN transfer-completion callback. Because nothing was enqueued, that callback never fires and the calling thread — a shared network traffic-class TX thread — deadlocks permanently while holding the interface TX lock, halting transmission until reboot (and leaking the transmit buffer). The enqueue fails under conditions controlled by the attached USB host: usbd_ep_enqueue() returns -EPERM whenever the bus is suspended (a standard, persistent host operation), and the underlying udc_ep_enqueue() returns -EPERM/-ENODEV on disconnect, bus reset, or endpoint disable. The cdc_ncm_send() guard only checks the DATA_IFACE_ENABLED and IFACE_UP flags, not the suspended state, so a packet transmitted while the host holds the bus suspended reaches the failing enqueue and deadlocks the TX path. The realistic trigger is a bus suspend that occurs while the exported network interface is active and has traffic to send — host sleep, USB selective/auto-suspend, or hub power management — after which any device-originated packet deadlocks the path, recoverable only by reboot. The impact is a persistent loss of the virtual network connection between the host's NCM interface and the Zephyr device; because the deadlocked thread is a shared traffic-class TX thread, egress on other network interfaces can stall as well. There is no memory corruption or information disclosure. The defect was introduced with the CDC-NCM driver and shipped in releases through v4.4.0; it is fixed by checking the usbd_ep_enqueue() return value and freeing the buffer before the blocking wait.
Source: NVD (National Vulnerability Database)
CVSS Information
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: NVD (National Vulnerability Database)
Vulnerability Type
死锁
Source: NVD (National Vulnerability Database)
Vulnerability Title
Zephyr 竞争条件问题漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Zephyr是Zephyr组织开源的一个可扩展的实时操作系统 (RTOS)。 Zephyr 4.1.0版本至4.5.0之前版本存在竞争条件问题漏洞,该漏洞源于USB CDC-NCM设备类在以太网发送回调函数cdc_ncm_send()中忽略了usbd_ep_enqueue()的返回值,当入队失败时仍持有接口TX锁阻塞在完成信号量上,导致共享网络流量TX线程永久死锁并停止传输,直至系统重启。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
zephyrprojectzephyr 4.1.0 ~ 4.5.0 -

II. Public POCs for CVE-2026-10647

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-10647

登录查看更多情报信息。

Patches & Fixes for CVE-2026-10647 (1)

Vendor Advisories for CVE-2026-10647 (1)

Same Patch Batch · zephyrproject · 2026-06-29 · 4 CVEs total

CVE-2026-76568.1 HIGHBroken IPv6 Neighbor Discovery input validation allows spoofed RA/NS/NA acceptance in Zeph
CVE-2026-80237.5 HIGHPath traversal in Zephyr HTTP server static-filesystem resource handler allows unauthentic
CVE-2026-106486.2 MEDIUMNULL-pointer dereference in MCUmgr serial/console SMP transport on buffer-pool exhaustion

IV. Related Vulnerabilities

V. Comments for CVE-2026-10647

No comments yet


Leave a comment