Skip to main content

Zephyr RTOS CVE-2026-10679

| EUVDEUVD-2026-46448 MEDIUM
Divide By Zero (CWE-369)
2026-07-21 zephyr
5.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Recon
    Identify target built with CONFIG_USERSPACE=y
  2. Delivery
    Obtain SPI device object access (via prior grant)
  3. Exploit
    Craft spi_config with frequency=0
  4. Install
    Call spi_transceive syscall
  5. C2
    Bypass syscall verify handler validation
  6. Execute
    Trigger divide-by-zero in spi_dw_configure
  7. Impact
    CPU exception causes kernel fault and system halt

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Division safety checks
Exploitation Conditions

Exploitation requires two non-default, deployment-specific conditions that must both be present simultaneously. First, the firmware must be compiled with CONFIG_USERSPACE=y, a build-time option that enables the Zephyr userspace isolation model; this is not enabled in the default Zephyr configuration and must be explicitly selected by the integrator. Second, the attacking userspace thread must have already been granted access to the specific DesignWare SPI device kernel object via an explicit k_object_access_grant() call in application code - meaning the application developer or firmware integrator must have intentionally authorized that thread for SPI access. Exploitation is limited to local code execution within an already-running, already-authorized thread; remote exploitation is not possible. There is no impact on confidentiality or integrity, and the fault does not enable privilege escalation or code injection. These conditions collectively limit real-world exposure to multi-tenant embedded applications where partially-trusted tasks coexist and SPI device access has been shared.

Impact

The CVSS 3.1 base score of 3.3 (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L) accurately captures the limited blast radius: local access, low complexity once prerequisites are met, partial availability impact only, and no confidentiality or integrity consequence. The description explicitly confirms there is no memory-corruption or information-disclosure path, consistent with C:N/I:N. No EPSS data was provided and no CISA KEV listing exists, meaning no confirmed or widespread exploitation is known. Practical risk is further constrained by two hard prerequisites - CONFIG_USERSPACE=y must be selected at build time (it is not the default Zephyr configuration) and the attacking thread must have been explicitly granted the SPI kernel object via k_object_access_grant() or equivalent, meaning an already-privileged configuration path must have been deliberately taken by a developer or integrator. This positions the vulnerability as low operational priority for most embedded deployments: an attacker exploiting this already has locally authorized access and can only cause a controlled kernel fault. The sole realistic concern is a malicious or compromised task within a multi-tenant embedded application deliberately crashing the device.

Exploit ScenarioDerived

A malicious or compromised unprivileged thread in a Zephyr application built with CONFIG_USERSPACE=y and granted access to a DesignWare SPI device kernel object calls spi_transceive with a crafted spi_config where the frequency field is set to zero. The syscall verify handler copies the struct without validation, spi_dw_configure() computes BAUDR as clock_frequency/0, and the Cortex-M UsageFault or ARC divide-by-zero exception handler triggers a kernel fault, halting the device. No public exploit code is known to exist.

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

Divide-by-zero in Zephyr's DesignWare SPI driver exposes kernel crash to locally-authorized userspace threads on all releases through v4.4.0. The spi_transceive syscall verify handler in spi_handlers.c copies the caller-supplied spi_config from userspace without validating the frequency field, allowing a thread with SPI device object access to pass frequency=0 and trigger an unsigned integer divide-by-zero in spi_dw_configure(), which raises a CPU exception on Cortex-M Mainline and ARC platforms and halts the system. No public exploit has been identified at time of analysis; exploitation is gated behind a non-default build configuration and explicit privilege grant.

RemediationAI

Upgrade to Zephyr v4.5.0 or any subsequent release that incorporates commit 65935885622b0e4a5dbe5b82504c30097eb75ce0, which adds two input-validation guards in spi_dw_configure(): rejection of zero frequency with -EINVAL and rejection of frequencies exceeding clock_frequency/DW_SPI_MIN_SCKDIV (where DW_SPI_MIN_SCKDIV=2, per the DesignWare SSI databook) also with -EINVAL. The patch and advisory are at https://github.com/zephyrproject-rtos/zephyr/commit/65935885622b0e4a5dbe5b82504c30097eb75ce0 and https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-3qcm-qwh2-v4hq respectively. If upgrading is not immediately feasible, two compensating controls are available: first, rebuild the firmware with CONFIG_USERSPACE=n, which eliminates the syscall boundary entirely and prevents untrusted threads from reaching the vulnerable path (trade-off: disables the userspace isolation model across the entire application); second, audit all calls to k_object_access_grant() and k_thread_access_grant() for SPI devices and ensure no untrusted thread receives SPI device object access (trade-off: requires manual code review and does not prevent privileged threads from triggering the fault via misconfiguration).

Affected VersionsENISA

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

Zephyr is a small-footprint RTOS targeting embedded and IoT platforms (CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*). The DesignWare SPI driver (drivers/spi/spi_dw.c) computes the BAUDR clock divider register value as info->clock_frequency / config->frequency; CWE-369 (Divide By Zero) arises because the divisor is never range-checked. The spi_transceive function is a Zephyr __syscall, meaning it crosses the userspace/kernel boundary under CONFIG_USERSPACE=y. Its verify handler (drivers/spi/spi_handlers.c) marshals the caller's spi_config struct from userspace memory but omits validation of the frequency field, allowing a zero value to propagate into the kernel. On Cortex-M Mainline, SCB->CCR.DIV_0_TRP is armed in z_arm_fault_init(), converting the divide-by-zero into a UsageFault/kernel fault. On ARC, a dedicated __ev_div_zero exception vector triggers equivalently. The DesignWare SSI databook mandates a minimum SCKDIV of 2, so the fix also rejects frequencies above clock_frequency/2. There is no heap or stack corruption pathway; this is a pure availability-class defect.

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 LOW
NVD 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 3.3 LOW

Local attack vector with low-privilege SPI device grant required; trivially simple once prerequisites met; availability-only kernel fault with no confidentiality or integrity impact.

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

Primary rating from Vendor (zephyr).

CVSS VectorNVD

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

Lifecycle Timeline

2
Severity Changed
Jul 30, 2026 - 16:07 NVD
LOW MEDIUM
CVSS changed
Jul 30, 2026 - 16:07 NVD
3.3 (LOW) 5.5 (MEDIUM)

DescriptionNVD

The DesignWare SPI driver (drivers/spi/spi_dw.c) computed the SPI BAUDR clock divider as info->clock_frequency / config->frequency without validating config->frequency.

spi_transceive is a Zephyr __syscall and its verify handler (drivers/spi/spi_handlers.c) copies the caller-supplied spi_config from userspace without checking the frequency field, so a userspace thread that has been granted access to a DesignWare SPI device kernel object can pass frequency = 0 and trigger an unsigned integer divide-by-zero in spi_dw_configure().

On Cortex-M Mainline (SCB->CCR.DIV_0_TRP is set in z_arm_fault_init()) and on ARC (a dedicated __ev_div_zero vector) this raises a CPU exception, resulting in a kernel fault and local denial of service.

The fix rejects zero frequency and frequencies above clock_frequency / 2 (the DesignWare SSI databook minimum SCKDIV of 2) with -EINVAL. The defect affects all Zephyr releases up to and including v4.4.0; exploitation requires CONFIG_USERSPACE=y and an unprivileged thread already granted SPI driver permission. There is no memory-corruption or information-disclosure impact.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
embedded RTOS targeting IoT and microcontroller platforms, not general enterprise infrastructure
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