Skip to main content

Zephyr RTOS EUVDEUVD-2026-33449

| CVE-2026-5071 HIGH
Out-of-bounds Read (CWE-125)
2026-05-30 zephyr
7.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Gain local code execution as userspace app
  2. Delivery
    Open SocketCAN socket
  3. Exploit
    Call sendto with truncated frame length
  4. Execution
    NET_ASSERT skipped in production build
  5. Persist
    socketcan_to_can_frame reads past buffer
  6. Impact
    Leak adjacent memory on CAN bus or crash device

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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

Exploitation Conditions

Exploitation requires the ability to run a userspace application on the Zephyr device that can invoke the sendto syscall against a SocketCAN socket, and the target must be a production build where NET_ASSERT assertions are compiled out (the default in production, but debug/test images with assertions enabled are NOT vulnerable). The attacker must control the length argument passed to sendto and supply a truncated socketcan_frame. Limiting factors: local access with at least low privileges is required (AV:L/PR:L, no remote path), SocketCAN networking must be enabled in the build, and the CAN socket interface must be reachable by the attacking process; no user interaction is needed.

Impact

The signals converge on a real but low-urgency issue. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N) confirms this needs local access and some privileges - a userspace app running on the device - so it is not remotely exploitable. EPSS is 0.01% (2nd percentile) and CISA's SSVC framework rates Exploitation: none, Automatable: no, Technical Impact: partial, all of which argue against imminent mass exploitation. There is no KEV listing and no public exploit code identified. Two caveats: the published 7.8 score assigns C:H/I:H/A:H, but an out-of-bounds *read* does not plausibly deliver a High integrity impact - the realistic impacts are information disclosure (leaked memory can be transmitted onto the CAN network) and denial of service (crash), so the integrity metric appears overstated. Exploitation also depends on the device being built with assertions disabled, which is normal for production but means debug/test images are not affected.

Exploit ScenarioDerived

A malicious or compromised userspace application on a Zephyr device opens a SocketCAN socket and calls sendto() with a socketcan_frame buffer whose length is deliberately shorter than a complete frame. Because the production build has NET_ASSERT compiled out, socketcan_to_can_frame() reads past the buffer, either crashing the device (DoS) or serializing adjacent memory into the CAN frame that is then transmitted on the bus, leaking secrets. No public proof-of-concept has been identified, and the local access requirement (AV:L/PR:L) limits this to attackers who already have code execution on the target.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv3 – Jul 08, 2026

Out-of-bounds read in the Zephyr RTOS SocketCAN implementation lets a local userspace application leak adjacent memory or crash the system by submitting a truncated CAN frame through the sendto syscall. The zcan_sendto_ctx() path guards the user-supplied buffer length only with a NET_ASSERT, which is compiled out of production builds, so socketcan_to_can_frame() then dereferences fields past the end of the buffer. All Zephyr versions up to and including 4.3 are affected; there is no public exploit identified at time of analysis and EPSS is negligible (0.01%, 2nd percentile).

Earlier versions of this analysis (2)
v2 Jul 08, 2026 - 13:46 cvss changed CVSS 7.8

Out-of-bounds read in the Zephyr RTOS SocketCAN stack lets a local, low-privileged userspace application crash the system or leak adjacent kernel memory onto the CAN bus. Affecting Zephyr versions up to and including 4.3, the flaw stems from frame-length validation that relies on a NET_ASSERT which is compiled out of production builds, so a truncated frame supplied via sendto() is dereferenced past its buffer. No public exploit identified at time of analysis; EPSS is negligible (0.01%) and SSVC records no known exploitation.

v1 May 30, 2026 - 08:27 CVSS 6.1

Out-of-bounds read in Zephyr RTOS SocketCAN implementation exposes production systems to denial-of-service crashes and adjacent memory disclosure via a crafted sendto() syscall. Local low-privileged userspace applications can supply a truncated socketcan_frame buffer whose length bypasses validation in zcan_sendto_ctx() - because the sole guard is a NET_ASSERT statement that is compiled out in production builds - causing socketcan_to_can_frame() to dereference fields beyond the buffer boundary. No public exploit code has been identified at time of analysis, but the affected CPE covers all versions of Zephyr RTOS, and exploitation is limited to local access with low privileges (CVSS AV:L/PR:L).

RemediationAI

Upgrade to a Zephyr release beyond 4.3 that contains the fix; the GHSA advisory (https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-c3w6-x7m3-3c58) is the authoritative source for the exact patched version, which is not independently confirmed from the available data - no fixed version string was provided, so treat patch availability as per-vendor-advisory only. As a compensating control until patching, add an unconditional length check in zcan_sendto_ctx() before calling socketcan_to_can_frame(), or if you build your own image temporarily keep NET_ASSERT enabled in the affected build (trade-off: assertions increase code size and halt the system on trigger, which may be undesirable in production). Operationally, restrict which userspace applications may open and write to SocketCAN sockets, since exploitation requires a local process that can issue the sendto syscall on a CAN socket. See https://vuldb.com/vuln/367420 for supplementary tracking.

Affected VersionsENISA

Zephyr * ≤4.3

Affected Packages

euvd zephyr no fix

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 an open-source real-time operating system for resource-constrained embedded and IoT devices. The flaw lives in its SocketCAN networking layer, which exposes a BSD-style socket API over the CAN (Controller Area Network) bus. When a userspace application calls sendto() with a socketcan_frame object, zcan_sendto_ctx() is supposed to verify that the caller-supplied length is large enough to hold a full frame, but it does so with a NET_ASSERT - a debug-only assertion that is disabled (compiled to a no-op) in production builds. socketcan_to_can_frame() subsequently reads frame fields (such as CAN ID, DLC, and data bytes) at fixed offsets, and with a truncated buffer those reads fall past the allocation boundary. This is a classic CWE-125 out-of-bounds read caused by trusting an assertion for security-relevant input validation rather than an unconditional runtime check.

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

NVD PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.1 HIGH

Local userspace app with low privileges controls the sendto length (AV:L/PR:L/AC:L); the OOB read yields memory disclosure (C:H) and crashes (A:H) but modifies no state, so I:N rather than the reported I:H.

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

4
Analysis Updated
Jul 08, 2026 - 13:47 vuln.today
v3 - CVSS changed
Analysis Updated
Jul 08, 2026 - 13:46 vuln.today
v2 - CVSS changed
Severity Changed
Jul 08, 2026 - 13:37 NVD
MEDIUM HIGH
CVSS changed
Jul 08, 2026 - 13:37 NVD
6.1 (MEDIUM) 7.8 (HIGH)

DescriptionNVD

The SocketCAN implementation validates the length of a user-provided buffer containing a socketcan_frame object using only a NET_ASSERT statement in zcan_sendto_ctx() before dereferencing it in socketcan_to_can_frame(). In production builds where assertions are disabled, a userspace application that controls the length passed to a sendto syscall can supply an incomplete or truncated frame, causing socketcan_to_can_frame() to dereference fields beyond the end of the buffer. This results in an out-of-bounds read that can cause denial-of-service crashes or, because the parsed frame contents are transmitted on the network, leak adjacent memory.

Executive ViewAI

Why It Matters

Zephyr RTOS SocketCAN module (all versions through 4.3) contains an out-of-bounds memory read vulnerability that allows local applications to leak sensitive kernel memory or trigger denial of service. Organizations deploying Zephyr in embedded or IoT systems where untrusted local code execution is possible face confidentiality and availability risk; however, exploitation requires local system access and no active exploitation has been observed.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict local userspace process privilege level and remove unnecessary Linux capabilities, particularly CAP_NET_RAW; (2) Deploy seccomp filters to block sendto syscalls on untrusted processes; (3) Disable SocketCAN functionality entirely where not operationally required; (4) Implement kernel-level sandboxing via SELinux/AppArmor to isolate critical network components; (5) Monitor Zephyr project repository and security mailing list for patch release tracking.

Threat Intelligence Overview

EPSS Score
0.0%
Top 98% exploitable
Prevalence
Medium
popular open-source embedded/IoT RTOS, but SocketCAN builds are a subset
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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