CVE-2026-17050: Zephyr RTOS USB host stack double-free in configuration descriptor

CVE-2026-17050 · Severity: medium · CVSS 5.7 · Published 2026-09-21

Zephyr's experimental USB host stack contains a memory management flaw where a configuration descriptor buffer can be freed twice when a USB device provides malformed or inconsistent descriptor data during enumeration. An attacker controlling a malicious USB device can trigger this double-free to crash the system with a denial of service on systems with heap hardening enabled, or corrupt heap memory on systems without protections, potentially leading to memory disclosure or code execution.

Technologies: Zephyr Project Zephyr RTOS. Vendors: Zephyr Project.

Quick answers

Is CVE-2026-17050 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-17050 being exploited in the wild.
How severe is CVE-2026-17050?
Medium severity, with a CVSS score of 5.7, published 21 September 2026.
Which products and versions are affected?
Zephyr Project Zephyr RTOS 4.1.0, 4.2.x, 4.3.x, 4.4.x.
Is there a fix for CVE-2026-17050?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-17050 attacked?
It is attacked from the adjacent network, in an operating system.
Am I affected by CVE-2026-17050?
Check whether you run Zephyr Project Zephyr RTOS at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

A per-device configuration descriptor buffer allocated from usb_device_heap is freed multiple times due to a dangling pointer: it is released on three failure paths in usbh_device_set_configuration() but the pointer is not nullified, and then freed again in usbh_device_free() which only checks if the pointer is non-NULL. The double-free is triggered entirely by an attached USB peripheral answering configuration descriptor requests with well-formed headers followed by inconsistent or malformed data. On CONFIG_SYS_HEAP_HARDENING_BASIC (default), this results in a kernel panic; without hardening, heap metadata corruption allows overlapping allocations.

Affected products

  • Zephyr Project Zephyr RTOS 4.1.0, 4.2.x, 4.3.x, 4.4.x

Timeline

  • 2026-09-21: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.