> CVE-2026-10647 [MEDIUM]

« BACK_TO_HOME
PUBLISHED
2026-06-29 22:16
MODIFIED
2026-06-29 22:16
CVSS_SCORE V3
5.3
EPSS (Prob. Exploit)
0.20%
Top 90.0%
DATA SOURCES:
NVD đź”— 2026-06-29 CWE MITRE đź”— 2026-11-01 FIRST EPSS đź”— 2026-11-01 OSV đź”— 2026-11-02

> 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.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
EXPLOITABILITY
1.6
IMPACT
3.6

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Adjacent (A)
Exploit nécessite un accès au segment réseau local
AC (Complexité d'Attaque)
Attack Complexity
High (H)
Conditions spécifiques doivent être réunies pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
None (N)
Aucune interaction utilisateur nécessaire
S (Périmètre)
Scope
Unchanged (U)
Impact reste dans le périmètre du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
None (N)
Aucune divulgation d'informations
I (Impact Intégrité)
Integrity Impact
None (N)
Aucune modification de données possible
A (Impact Disponibilité)
Availability Impact
High (H)
Interruption totale du service possible

> RÉSUMÉ DES IMPACTS

Confidentialité
None
Aucune divulgation d'informations
Intégrité
None
Aucune modification de données possible
Disponibilité
High
Interruption totale du service possible

> WEAKNESSES

CWE-833

> CWE DETAILED DESCRIPTIONS

CWE-833: Deadlock - The product contains multiple threads or executable segments that are waiting for each other to release a necessary lock, resulting in deadlock.

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

Deadlock denial of service in USB CDC-NCM device class on TX enqueue failure

AFFECTED PACKAGES:
Unknown / Unknown
18 versions affected
ALIASES:
GHSA-xcf7-r86m-5q9f

> HISTORIQUE DES MODIFICATIONS

Première apparition
29/06/2026 22:16
Source: NVD
📊 ENRICHISSEMENT 01/07/2026 06:01
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-833: Deadlock - The product contains multiple threads or executable segments that are waiting for each other to release a necessary lock, resulting in deadlock.
Total des modifications: 1 Dernière mise à jour: 4 months ago

> REFERENCES

https://github.com/zephyrproject-rtos/zephyr/commit/255bccc1badd1aa06c6e5ddf5b40...
https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-xcf7-r86m-...
« BACK_TO_HOME