Skip to main content

Zephyr RTOS EUVDEUVD-2026-46444

| CVE-2026-10674 MEDIUM
Reachable Assertion (CWE-617)
2026-07-21 zephyr
5.5
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain userspace permission to LPUART device node
  2. Delivery
    Call uart_configure() with unsupported parity/stop-bit value
  3. Exploit
    LPUART_Deinit() disables peripheral clock
  4. Execution
    Validation rejects config, -ENOTSUP returned without clock restore
  5. Persist
    Any subsequent UART register access triggers bus fault
  6. Impact
    Zephyr escalates to hard fault, system resets

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
Exploitation Conditions

Three conditions must all be true simultaneously: (1) CONFIG_UART_USE_RUNTIME_CONFIGURE must be enabled in the Zephyr build's Kconfig - this is an opt-in feature not present in many minimal production firmware images; (2) the target hardware must use an NXP LPUART peripheral managed by the drivers/serial/uart_mcux_lpuart.c driver, restricting the affected surface to NXP MCU families (i.MX RT, LPC, Kinetis) rather than all Zephyr targets; and (3) the attacker's thread must hold Zephyr userspace permission to call uart_configure() on an LPUART device node, meaning the device must have been explicitly opened or granted to that thread by the application or device manager. Exploitation is blocked if any one condition is absent: non-NXP targets, builds omitting runtime configure support, and configurations restricting LPUART access to privileged threads are all unaffected. The CVSS PR:L vector confirms authentication is required at the level of a low-privileged local user or application thread.

Impact

CVSS 5.5 (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) accurately characterizes the exploit mechanics: local access, low privilege, deterministic triggering, availability-only impact with no confidentiality or integrity consequence. In general-purpose computing this score would represent a moderate, lower-priority finding. In embedded and safety-adjacent contexts typical of Zephyr deployments (industrial controllers, medical devices, automotive ECUs), a hard fault causing a system reset is operationally critical and may have safety implications beyond raw CVSS scoring. No EPSS score was provided; exploitation probability is inferred from description and CVSS alone. No CISA KEV listing and no public proof-of-concept code have been identified, meaning this is not currently under active mass exploitation. The vulnerability is gated on CONFIG_UART_USE_RUNTIME_CONFIGURE being enabled, which is not required in many minimal production builds, substantially narrowing the real-world exposed surface. Overall, this is a genuine priority for embedded product teams shipping Zephyr on NXP LPUART hardware with runtime reconfigure enabled, but low urgency for organizations not meeting all three preconditions.

Exploit ScenarioDerived

An unprivileged application thread on an NXP i.MX RT device running Zephyr with CONFIG_UART_USE_RUNTIME_CONFIGURE enabled calls uart_configure() on an LPUART device node it has been granted access to, supplying an unsupported parity setting such as UART_CFG_PARITY_MARK. The driver immediately calls LPUART_Deinit(), gating the peripheral clock, then returns -ENOTSUP after failing validation without restoring the clock. The next UART write, read, or interrupt servicing by any thread triggers a bus fault that escalates to a hard fault and resets the device, causing a persistent, attacker-repeatable denial of service on each reboot if the application continues to issue the same call.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 22, 2026

Persistent denial of service in the NXP LPUART serial driver for Zephyr RTOS allows an unprivileged userspace thread to deterministically crash the entire embedded system by issuing a uart_configure() call with an unsupported parameter value while CONFIG_UART_USE_RUNTIME_CONFIGURE is enabled. The driver's configure path calls LPUART_Deinit() before validating the requested configuration, gating the peripheral clock; if validation then rejects the parameters, the clock is never restored, and any subsequent LPUART register access - from any thread or interrupt handler - triggers a hard fault and system reset. No public exploit code or CISA KEV listing has been identified at time of analysis, but the fault path is trivially and deterministically reproducible from userspace on affected NXP MCU targets.

RemediationAI

The upstream fix is confirmed available as commit f56935c46fdf6559a20ad8484b29896ecac5808f in the Zephyr project repository (https://github.com/zephyrproject-rtos/zephyr/commit/f56935c46fdf6559a20ad8484b29896ecac5808f); it replaces the LPUART_Deinit() call with targeted transmitter/receiver disable (clearing LPUART_CTRL_TE_MASK and LPUART_CTRL_RE_MASK), leaving clock gating intact throughout the configure path. Teams should upgrade to Zephyr 4.5.0 or later, or backport this single-file commit to their in-tree driver for earlier release branches. If an immediate upgrade is not feasible, disabling CONFIG_UART_USE_RUNTIME_CONFIGURE in the project Kconfig prevents the vulnerable code path from being compiled entirely - note this trades away the ability to change UART parameters at runtime without a rebuild. A secondary compensating control is to restrict unprivileged thread access to LPUART device nodes via Zephyr's device permission APIs, ensuring only trusted kernel-mode code can call uart_configure(); this does not fix the bug but eliminates the userspace trigger path. A released patched version number beyond 4.5.0 has not been independently confirmed from the available data; verify the exact target tag in the Zephyr changelog.

Affected VersionsENISA

Zephyr 3.7.0 <4.5.0

Affected Packages

euvd zephyr fix: 4.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in drivers/serial/uart_mcux_lpuart.c in the Zephyr RTOS, which targets NXP MCUs using the LPUART peripheral (e.g., i.MX RT, LPC, Kinetis families). CWE-617 (Reachable Assertion / improper error-path state management) is the root cause class: the mcux_lpuart_configure() function calls the NXP SDK's LPUART_Deinit() as the first step of reconfiguration, which disables the peripheral's clock gating. Parameter validation occurs afterward in mcux_lpuart_configure_basic(); if the supplied parity, data-bit, stop-bit, or flow-control value is unsupported, the function returns -ENOTSUP before re-enabling the clock. With clocks gated, the LPUART register aperture becomes inaccessible; any subsequent bus access faults on the MCU's bus fabric and Zephyr escalates this to a hard fault, typically causing a full system reset. The Zephyr syscall verifier z_vrfy_uart_configure performs only a pointer-readability check on the cfg argument and forwards caller-supplied values unchanged, making this error path reachable from any unprivileged Zephyr userspace thread that holds a file descriptor or device permission for an LPUART node. CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*.

Know when Zephyr gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (zephyr) PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.5 MEDIUM

Local low-privilege userspace thread triggers deterministic hard fault via unsupported configure call; no confidentiality or integrity impact, only full system availability loss.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

The NXP LPUART serial driver (drivers/serial/uart_mcux_lpuart.c), when CONFIG_UART_USE_RUNTIME_CONFIGURE is enabled, called LPUART_Deinit() at the start of mcux_lpuart_configure(), which disables the LPUART peripheral clocks. The requested configuration is validated only afterwards (in mcux_lpuart_configure_basic), and unsupported parity/data-bit/stop-bit/flow-control values return -ENOTSUP before the clock is re-enabled.

As a result, a uart_configure() request with an unsupported configuration left the LPUART in a clock-disabled state; any subsequent access to LPUART registers (poll_out/poll_in, interrupt handling, or a later reconfigure) faults on the gated peripheral and escalates to a hard fault, crashing the system.

uart_configure() is a Zephyr syscall whose verifier (z_vrfy_uart_configure) only checks that cfg is readable user memory and forwards the caller-supplied configuration unchanged, so an unprivileged userspace thread with access to an LPUART device can deterministically trigger the fault, a persistent system-wide denial of service.

Introduced in v2.5.0 and present in all subsequent releases until this fix, which removes the LPUART_Deinit() call and instead only disables the transmitter/receiver, leaving the clock running.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Low
embedded RTOS targeting NXP MCUs, niche IoT and industrial deployments
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy