Skip to main content

Zephyr RTOS EUVDEUVD-2026-90880

| CVE-2026-17053 MEDIUM
Missing Authorization (CWE-862)
2026-10-01 zephyr
4.4
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Run as granted user-mode thread with SMBus object
  2. Delivery
    Invoke remove_cb syscall with crafted pointer
  3. Exploit
    Verifier skips pointer validation
  4. Execution
    Unregister supervisor callback or dereference bad pointer in kernel
  5. Impact
    Disable alert handling or trigger fatal kernel fault

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a Zephyr build with CONFIG_USERSPACE=y AND CONFIG_SMBUS=y AND an SMBus driver implementing the callback operations - specifically drivers/smbus/intel_pch_smbus.c with CONFIG_SMBUS_INTEL_PCH_SMBALERT or CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY, or drivers/smbus/smbus_stm32.c with CONFIG_SMBUS_STM32_SMBALERT. The attacker must be a local user-mode thread that has already been granted the SMBus device object (PR:L, AV:L). There is explicitly NO impact on builds without CONFIG_USERSPACE and NO impact on configurations that do not enable an SMBus driver with SMBALERT or Host Notify support. The CONFIG_ASSERT=y fault/DoS and address-disclosure path additionally depends on assertions being compiled in.

Impact

This is a genuinely low-to-moderate risk, config-gated local privilege/integrity issue - the CVSS of 4.4 is honest, not inflated. The vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L correctly captures that exploitation is LOCAL (AV:L) by an already-authenticated low-privileged user-mode thread (PR:L) with no user interaction, producing only partial integrity and availability impact and no confidentiality loss per the vendor. There is no EPSS score, no CISA KEV listing, and no public exploit code identified at time of analysis, so there is no public exploit identified at time of analysis. The key risk-dampening factor is not the CVSS metrics but the narrow prerequisite surface: the vulnerable syscalls only exist and matter on builds with CONFIG_USERSPACE=y, CONFIG_SMBUS=y, and a specific driver (Intel PCH or STM32) compiled with SMBALERT/Host-Notify support, and the attacking thread must already have been granted the SMBus device object. No signals conflict here - low real-world risk is consistent across CVSS, missing EPSS/KEV, and the absence of a POC. Note the description also mentions a minor address-mapping side channel (fault vs no-fault, and 0 vs -ENOENT return codes), which arguably warrants C:L; the vendor nonetheless scored C:N, treating it as negligible.

Exploit ScenarioDerived

On a Zephyr image built with CONFIG_USERSPACE, CONFIG_SMBUS, and an SMBALERT/Host-Notify-capable driver, a low-privileged user-mode thread that holds the SMBus device object invokes smbus_smbalert_remove_cb() or smbus_host_notify_remove_cb() with an attacker-chosen pointer; because images have fixed symbol addresses and the syscall returns 0 on a hit versus -ENOENT on a miss, the attacker searches for and unregisters a callback a supervisor component registered, silently disabling alert handling. Alternatively, on a CONFIG_ASSERT=y build, supplying a bogus pointer causes the __ASSERT(callback->handler, ...) check to dereference it in supervisor mode, triggering a kernel-mode fault and fatal system error (DoS), while the fault/no-fault outcome leaks which addresses are mapped. No public exploit code is known, and exploitation is local and requires the prior grant of the SMBus device object.

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 – Oct 01, 2026

Local user-mode threads in Zephyr RTOS builds that enable CONFIG_USERSPACE and CONFIG_SMBUS can invoke the smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() syscalls with an arbitrary pointer, silently unregistering SMBALERT or Host Notify callbacks that supervisor-mode code registered and thereby disabling alert handling system-wide; the same pointer can also be probed for valid kernel addresses because the syscall returns 0 on a hit versus -ENOENT on a miss. Exploitation is authenticated and local (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L, 4.4), requiring a user-mode thread that has already been granted the SMBus device object, and is limited to configurations using the Intel PCH SMBus driver with CONFIG_SMBUS_INTEL_PCH_SMBALERT or CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY, or the STM32 SMBus driver with CONFIG_SMBUS_STM32_SMBALERT; builds with CONFIG_ASSERT=y additionally turn a bogus pointer into a supervisor-mode fault and fatal system error, leaking which addresses are mapped. There is no impact on builds without CONFIG_USERSPACE or without an SMBus driver supporting SMBALERT/Host Notify, and no public exploit identified at time of analysis.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - apply the hardening change in commit 331df881a8b8cb4296699a8251c9fd74a4308f3d, which removes the smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() syscall entry points and republishes them as static inline functions so that callback-list manipulation is reachable only from supervisor mode, and track https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hqh5-956f-5x2r for the patched release that carries it. If the commit cannot be backported immediately, the most targeted compensating control is to drop the SMBALERT/Host Notify driver options that expose the callback path - CONFIG_SMBUS_INTEL_PCH_SMBALERT, CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY, and CONFIG_SMBUS_STM32_SMBALERT - at the cost of losing alert and host-notify handling on those platforms, or to stop granting the SMBus device object to user-mode threads so they cannot reach the verifier at all, which breaks any legitimate user-mode SMBus client. Disabling CONFIG_ASSERT=y removes the supervisor-mode dereference and the resulting fault/address-disclosure oracle but also strips all kernel assertions and is not a substitute for the pointer-validation fix, while turning off CONFIG_USERSPACE entirely closes the flaw by eliminating the userspace boundary but sacrifices memory isolation for the whole application. None of these are equivalent to the upstream fix, which is the only option that preserves functionality while closing the missing-authorization gap; because impact is integrity-only and low (CVSS 4.4), deferring the patch is defensible only on systems that neither expose SMBALERT/Host Notify drivers to user-mode threads nor rely on CONFIG_ASSERT builds.

Affected VersionsENISA

Zephyr 3.4.0 <4.4.2

Affected Packages

euvd zephyr fix: 4.4.2

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's userspace model splits callers into user-mode threads and supervisor-mode kernel code, with __syscall entry points fronted by z_vrfy_* verifiers that must check both object permissions (K_SYSCALL_OBJ against K_OBJ_DRIVER_SMBUS) and memory access rights (K_SYSCALL_MEMORY_READ / K_SYSCALL_MEMORY_WRITE) before forwarding arguments into z_impl_* kernel implementations. The verifiers in drivers/smbus/smbus_handlers.c for smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() performed only the device-object check and passed the raw struct smbus_callback *cb pointer through unchecked, so an untrusted userspace address reached smbus_callback_remove() in drivers/smbus/smbus_utils.h, where it is compared as a node identity against the kernel's sys_slist_t of registered callbacks - a missing-authorization weakness (CWE-862) rather than a memory-corruption bug. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, and the design intent is visible in the fix commit 331df881a8b8cb4296699a8251c9fd74a4308f3d, which deletes both z_vrfy_* shims and their marshalling headers and demotes the functions to ordinary static inline wrappers, matching an earlier 2023 change that had already removed the smbus_smbalert_set_cb() and smbus_host_notify_set_cb() syscalls for the same reason. Because Zephyr images use fixed symbol addresses and the return value distinguishes a hit (0) from a miss (-ENOENT), the address of a registered callback is both derivable and searchable by an attacker; with CONFIG_ASSERT=y the __ASSERT(callback->handler, ...) dereference executes in supervisor mode, so the fault/no-fault outcome discloses whether a given address is mapped.

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

Local user-mode thread already holding the SMBus object (AV:L, PR:L); no interaction; unregistering supervisor callbacks gives I:L and a CONFIG_ASSERT kernel fault gives A:L; vendor scores the address side-channel as C:N.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/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
Low
Availability
Low

DescriptionCVE.org

The SMBus driver API exposed smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() as Zephyr syscalls. Their verifiers in drivers/smbus/smbus_handlers.c validated only the dev argument with K_SYSCALL_OBJ(dev, K_OBJ_DRIVER_SMBUS) and forwarded the caller-supplied struct smbus_callback *cb pointer into kernel-mode driver code without any K_SYSCALL_MEMORY_READ/K_SYSCALL_MEMORY_WRITE validation. A companion change in 2023 had already removed the matching smbus_smbalert_set_cb() / smbus_host_notify_set_cb() syscalls for this reason, but the two removal syscalls were left exposed.

On a build with CONFIG_USERSPACE=y, CONFIG_SMBUS=y and a driver implementing the callback operations (drivers/smbus/intel_pch_smbus.c with CONFIG_SMBUS_INTEL_PCH_SMBALERT/CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY, or drivers/smbus/smbus_stm32.c with CONFIG_SMBUS_STM32_SMBALERT), any user-mode thread that has been granted the SMBus device object can invoke these syscalls with an arbitrary pointer. The value reaches smbus_callback_remove() in drivers/smbus/smbus_utils.h, which uses it as a node identity against the kernel's sys_slist_t of registered callbacks.

The consequence is that an unprivileged thread can unregister an SMBALERT or Host Notify callback that a supervisor-mode component registered, silently disabling alert handling for the rest of the system; because Zephyr images have fixed symbol addresses and the syscall returns 0 on a hit versus -ENOENT on a miss, the target address is both derivable and searchable. In builds with CONFIG_ASSERT=y the __ASSERT(callback->handler, ...) check additionally dereferences the caller-supplied address in supervisor mode, so a bogus pointer raises a kernel-mode fault and a fatal system error, and the fault/no-fault outcome discloses which addresses are mapped.

The fix removes both syscall entry points, demoting the two functions to ordinary static inline calls so that callback list manipulation is available only to supervisor-mode code. There is no impact on builds without CONFIG_USERSPACE, and no impact on configurations that do not enable an SMBus driver with SMBALERT or Host Notify support.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Medium
popular embedded RTOS but vulnerable config and SMBus drivers are narrow
Data Quality
6 sources
Confidence: High

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
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

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