CVE-2026-4179
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-4179 is an infinite loop vulnerability in the STM32 USB device driver (drivers/usb/device/usb_dc_stm32.c) of the Zephyr RTOS that can cause a denial of service condition. It affects Zephyr versions up to and including 4.3.0. The vulnerability was published on March 14–16, 2026, and assigned a CVSS v3.1 base score of 6.1 (Medium) (Zephyr Advisory, Red Hat CVE).

Technical details

The root cause is classified as CWE-835 (Loop with Unreachable Exit Condition). The usb_write() function in subsys/usb/device/usb_device.c calls k_yield() when a USB endpoint write returns -EAGAIN, but this code path can be triggered from within an interrupt handler (e.g., HAL_PCD_DataOutStageCallback in the STM32 USB driver). The Zephyr kernel explicitly asserts via __ASSERT(!arch_is_in_isr(), "") that k_yield() must not be called from an ISR context; when this assertion is bypassed or ignored in certain build configurations, the scheduler enters an infinite loop, hanging the system. Exploitation requires local access with low privileges and can be triggered through USB mass storage operations on affected STM32-based hardware (Zephyr Advisory).

Impact

Successful exploitation causes the affected Zephyr RTOS device to hang or become completely unresponsive, resulting in a high availability impact. There is minimal confidentiality impact (none) and low integrity impact, as the primary consequence is a denial of service that requires a device reboot to recover. Given that Zephyr is widely used in embedded and IoT systems, this vulnerability could disrupt safety-critical or industrial applications running on STM32-based hardware (Zephyr Advisory).

Exploitability

No confirmed in-the-wild exploitation has been observed, and no functional exploit code is publicly available. The GitHub Security Advisory analyzed by Feedly was determined to be non-exploitable as a standalone artifact — it contains a backtrace and code snippets but no actionable exploit steps. The EPSS score is very low at approximately 0.013%, reflecting minimal near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Zephyr Advisory).

Exploitation steps

  1. Identify target hardware: Locate a device running Zephyr RTOS version ≤4.3.0 on STM32-based hardware (e.g., Nucleo-H753ZI) with USB device functionality enabled (e.g., USB mass storage class).
  2. Gain local access: Obtain low-privileged local access to the target system, sufficient to interact with the USB subsystem or trigger USB data transfer operations.
  3. Trigger USB write under load: Initiate a USB bulk-out transfer (e.g., via the mass storage class) that causes usb_dc_ep_write() to return -EAGAIN repeatedly, placing the system under conditions where the endpoint buffer is full.
  4. Force ISR context execution: The usb_write() retry loop calls k_yield() from within the HAL_PCD_DataOutStageCallback interrupt handler context, violating the kernel's ISR constraint.
  5. Trigger infinite loop: The improper k_yield() call from the ISR context causes the scheduler to enter an infinite loop, hanging the device and causing a denial of service (Zephyr Advisory).

Indicators of compromise

  • Process/System Behavior: Device becomes completely unresponsive or hangs during USB mass storage operations; no response to input or network activity.
  • Logs: Zephyr kernel assertion failure messages (__ASSERT triggered) or warning logs from usb_write such as "Failed to write endpoint buffer 0x<ep>" appearing repeatedly before system hang.
  • Debug/Backtrace: Stack trace showing call chain from _isr_wrapperHAL_PCD_IRQHandlerHAL_PCD_DataOutStageCallbackusb_writek_yieldrunq_yield in a loop (Zephyr Advisory).

Mitigation and workarounds

Apply the patch referenced in Zephyr security advisory GHSA-9xg7-g3q3-9prf (pull request #104390 targeting the main branch). Update Zephyr to a version later than 4.3.0 once a patched release is available. As a workaround, restrict local access to USB device driver interfaces to trusted users only, and consider disabling USB mass storage functionality on sensitive devices until the patch is applied (Zephyr Advisory).

Community reactions

The vulnerability was credited to reporter tempus-fuzzer, suggesting it was discovered through fuzzing of the Zephyr USB stack. Coverage has been limited to automated vulnerability tracking platforms and a brief blog post, with no significant broader industry commentary or vendor statements beyond the Zephyr project's own advisory (Zephyr Advisory).

Additional resources


SourceThis report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-91782LOW1.9
  • NixOS logoNixOS
  • binutils
NoYesSep 15, 2026
CVE-2026-91781LOW1.9
  • NixOS logoNixOS
  • binutils
NoYesSep 15, 2026
CVE-2026-91780LOW1.9
  • NixOS logoNixOS
  • binutils
NoNoSep 15, 2026
CVE-2026-91779LOW1.9
  • NixOS logoNixOS
  • binutils
NoNoSep 15, 2026
CVE-2026-90831LOW1.9
  • NixOS logoNixOS
  • gcc-toolset-15-binutils-devel
NoYesSep 14, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management