Skip to main content

Zephyr RTOS CVE-2026-13481

| EUVDEUVD-2026-66557 MEDIUM
Out-of-bounds Read (CWE-125)
2026-08-26 zephyr
5.4
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Gain L2 adjacency on PTP segment
  2. Delivery
    Craft PTP_MSG_MANAGEMENT with 2-byte MGMT_TIME TLV
  3. Exploit
    Transmit frame to target Zephyr device
  4. Execution
    Parser skips length check, casts to 10-byte struct
  5. Impact
    Read 8 adjacent in-object bytes / corrupt parsed timestamp

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

CONFIG_PTP must be explicitly enabled in the Zephyr build configuration - this is not a default-on option, so stock Zephyr builds without PTP are entirely unaffected. The attacker must have Layer 2 (Ethernet/link-local) adjacency to the target device on the PTP network segment; remote internet-based exploitation is not possible given AV:A. No authentication or privileges are required on the PTP message path, and no user interaction is needed. The over-read and write-back are bounded within the struct ptp_msg heap object, so exploitation cannot produce a crash or achieve past-allocation corruption - this limits the vulnerability to in-object adjacent-byte disclosure and timestamp value corruption. The absence of a crash primitive and the requirement for same-segment adjacency together significantly limit the realistic threat beyond insider or compromised-peer scenarios.

Impact

The CVSS 3.1 vector (AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N, score 5.4) accurately captures the threat model: exploitation requires Layer 2 adjacency on the PTP segment and carries only limited confidentiality and integrity impact. There is no availability degradation because the over-read does not cause a crash and the write-back stays within the same object. The bounded, in-object nature of the corruption (reading adjacent struct bytes rather than arbitrary heap memory) is a significant real-world risk reducer compared to a typical heap out-of-bounds write. The attack surface is further restricted by CONFIG_PTP being a non-default build-time option - devices that do not implement PTP are wholly unaffected. No EPSS score was supplied; given the narrow attack surface (same L2 segment, PTP-enabled embedded device, no crash primitive), exploitation probability is expected to be very low. The vulnerability is not listed in CISA KEV, and no POC has been identified, making opportunistic mass exploitation implausible. For defenders: the realistic priority is patching edge-case IoT or industrial control devices that run Zephyr with PTP enabled on untrusted network segments.

Exploit ScenarioDerived

An attacker on the same Ethernet or Layer 2 network segment as a Zephyr device with CONFIG_PTP enabled crafts a PTP_MSG_MANAGEMENT frame carrying a PTP_MGMT_TIME TLV with only 2 bytes of data (the minimum that passes the upstream guard) and sends it to the device. The parser casts the 2-byte buffer to a 10-byte struct ptp_timestamp, reads 8 bytes of adjacent in-object memory (potentially exposing bytes from neighboring struct fields), and writes the byte-swapped result back, silently corrupting the device's parsed management timestamp. No public exploit code has been identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Aug 26, 2026

Out-of-bounds read and in-object write in the Zephyr RTOS IEEE 1588 PTP stack affects all Zephyr versions with CONFIG_PTP enabled, exploitable by any unauthenticated attacker with Layer 2 adjacency. The PTP_MGMT_TIME management-id case in tlv_mgmt_post_recv() omits the length guard present for every sibling case, allowing a crafted short TLV to drive an 8-byte over-read and bounded write-back within the same struct ptp_msg allocation. No public exploit has been identified at time of analysis, and impact is constrained to minor adjacent-memory disclosure and corruption of the device's parsed management timestamp - no crash or past-allocation corruption is reachable.

RemediationAI

Apply the upstream fix via commit de98c3721a0e21ca269313997736f4f6193909ef (https://github.com/zephyrproject-rtos/zephyr/commit/de98c3721a0e21ca269313997736f4f6193909ef), which adds a length guard - if (length < sizeof(struct ptp_timestamp)) { return -EBADMSG; } - before the cast in the PTP_MGMT_TIME case, matching the pattern already present for all sibling management IDs. A specific tagged release version incorporating this fix was not independently confirmed from available data; integrators should verify against the Zephyr changelog or the GHSA advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-mh5r-jxh8-hxwx. As a compensating control, disabling CONFIG_PTP at build time completely eliminates the attack surface with no functional trade-off for devices that do not require PTP synchronization. Network-level segmentation of PTP traffic (restricting Layer 2 adjacency to trusted peers only) reduces exploitability without requiring a rebuild, though it does not eliminate the defect.

Affected VersionsENISA

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

The affected code is the IEEE 1588 Precision Time Protocol (PTP) management-message TLV parser in subsys/net/lib/ptp/tlv.c, part of Zephyr's network subsystem (CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*). The root cause is CWE-125 (Out-of-bounds Read): tlv_mgmt_post_recv() handles PTP_MGMT_TIME by directly casting mgmt_tlv->data to a pointer to struct ptp_timestamp (10 bytes), then byte-swapping and writing back 8 bytes, without verifying that the TLV data field is at least sizeof(struct ptp_timestamp). The upstream guard in ptp_tlv_post_recv() only requires tlv->length > 2, and msg_tlv_post_recv() validates only that the entire TLV fits within the received byte count - neither enforces a per-id minimum. The over-read stays within the struct ptp_msg allocation because mgmt_tlv->data lives inside the leading mtu[NET_ETH_MTU] union member, placing data+10 at most a few bytes past mtu[] within the same heap object. All other management IDs in the same switch perform the missing check, confirming this was a one-off oversight rather than a systemic design gap.

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

Adjacent vector because exploitation requires L2 PTP segment presence; PR:N as messages are unauthenticated; C:L/I:L for bounded in-object byte exposure and timestamp corruption; A:N because no crash is reachable.

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

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

DescriptionCVE.org

The IEEE 1588 PTP management-message parser in subsys/net/lib/ptp/tlv.c mishandles the PTP_MGMT_TIME management id. In tlv_mgmt_post_recv(), the PTP_MGMT_TIME case casts mgmt_tlv->data to a 10-byte struct ptp_timestamp and reads it (then byte-swaps and writes it back) without first checking that the TLV data field is at least sizeof(struct ptp_timestamp). Every sibling management id in the same switch validates its length first; PTP_MGMT_TIME was the only case lacking that check.

The length passed in is the management data size (tlv->length - 2), and the upstream guard in ptp_tlv_post_recv() only requires tlv->length > 2, while msg_tlv_post_recv() validates only that the TLV fits within the received byte count, not a per-id minimum. A peer on the local PTP segment can therefore send a PTP_MSG_MANAGEMENT message carrying a short PTP_MGMT_TIME TLV (data as small as 2 bytes), causing the parser to read and write 8 bytes beyond the validated data. The message type and TLV contents are taken straight off the wire, so the path is reachable by any adjacent attacker when CONFIG_PTP is enabled.

The over-read and write-back stay within the struct ptp_msg allocation (mgmt_tlv->data lives in the leading mtu[NET_ETH_MTU] union member, so data + 10 lands at most a few bytes past mtu[], inside the same object), so this is an out-of-bounds read of adjacent in-object memory plus a bounded in-place corruption of the message's parsed timestamp, not past-allocation memory corruption. Impact is limited to minor information exposure of adjacent bytes and corruption of the device's parsed management TIME value; there is no crash on the access and no reachable reference-count corruption.

The fix adds if (length < sizeof(struct ptp_timestamp)) { return -EBADMSG; } before the cast, matching the other management-id cases and fully closing the receive-path defect.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche embedded RTOS, PTP feature non-default
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.2%
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
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
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