Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain L2 adjacency on PTP segment
-
DeliveryCraft PTP_MSG_MANAGEMENT with 2-byte MGMT_TIME TLV
-
ExploitTransmit frame to target Zephyr device
-
ExecutionParser skips length check, casts to 10-byte struct
-
ImpactRead 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
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.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-66557
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB