Skip to main content

Zephyr RTOS CVE-2026-13480

| EUVDEUVD-2026-66556 LOW
Improper Input Validation (CWE-20)
2026-08-26 zephyr
3.1
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Obtain device LoRaWAN session keys
  2. Delivery
    Send FRAG_SESSION_SETUP with frag_size=232
  3. Exploit
    Transmit mismatched-index DATA_FRAGMENT fillers to advance rx_pos
  4. Execution
    Append matching-index fragment near payload end
  5. Persist
    Decoder reads 232 bytes past RxPayload boundary
  6. Impact
    Adjacent static memory written to FUOTA flash buffer

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the attacker already possess the target device's active LoRaWAN session keys (AppSKey and NwkSKey), because the vulnerable handler is only reached after the MAC layer successfully validates the frame Message Integrity Code (MIC) and decrypts the FRMPayload - both operations depend on those keys. The device must also be compiled with CONFIG_LORAWAN_FRAG_TRANSPORT=y and must be in an active LoRaWAN session with FUOTA service active. Exploitation is further constrained by the Adjacent network attack vector (the attacker must be reachable via the LoRaWAN radio network or operate through a compromised network server), by the High complexity multi-step setup (a FRAG_SESSION_SETUP must precede the DATA_FRAGMENT sequence), and by the bounded impact - overread data goes silently to internal buffers, not back to the attacker, eliminating a direct disclosure primitive. There is no exploitation path for an unauthenticated or network-remote attacker against default configurations.

Impact

The CVSS 3.1 score of 3.1 (Low) correctly characterizes this vulnerability: AV:A restricts attack delivery to the LoRaWAN radio interface, AC:H reflects the multi-step setup required (session establishment plus crafted fragment sequence), and PR:H is the dominant risk-limiting factor - exploitation is gated on possession of the device's LoRaWAN session keys (AppSKey/NwkSKey), meaning the threat actor is either the legitimate FUOTA server or a party who has already fully compromised session key material. No EPSS score was present in the input data, and the CVE is not listed in the CISA KEV catalog; no public proof-of-concept exploit is known. The confidentiality impact is further attenuated because overread bytes are written into internal decoder buffers and the FUOTA flash image rather than returned upstream - there is no direct disclosure channel. On flat-memory LoRaWAN MCUs, the overread stays within mapped memory making a crash unlikely, which is consistent with A:L (potential FUOTA data corruption) rather than A:H. Even an organization deploying a large fleet of Zephyr-based LoRaWAN devices should treat this as a low-urgency patch, prioritizing it only if session key hygiene in their deployment is already uncertain - at that point the session-key compromise itself is the primary incident, not this secondary overread.

Exploit ScenarioDerived

An attacker who has obtained a device's LoRaWAN session keys sends a crafted FRAG_SESSION_SETUP downlink setting frag_size to 232 (the compile-time maximum), which the device stores in ctx.frag_size; the attacker then sends a series of DATA_FRAGMENT downlinks with mismatched indices, each advancing rx_pos by three bytes without generating an uplink response, until a final matching-index fragment causes the decoder to read 232 bytes starting near the tail of the 255-byte RxPayload buffer, copying adjacent static memory contents into the FUOTA flash write buffer. No public proof-of-concept is known; crafting the precise packet sequence requires knowledge of the LoRaWAN TS004 protocol and the target device's session keys.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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 in Zephyr RTOS's LoRaWAN TS004 Fragmented Data Block Transport handler allows a party holding valid device session keys to trigger a bounded overread of up to 232 bytes beyond the 255-byte MacCtx.RxPayload static buffer, with overread data silently written into decoder buffers and the FUOTA flash image rather than returned to the attacker. The vulnerable function frag_transport_package_callback() in subsys/lorawan/services/frag_transport.c casts rx_buf + rx_pos to fixed-size structs and passes the pointer to the fragment decoder without first verifying that sufficient payload bytes remain. No public exploit is identified and this CVE is not listed in the CISA KEV catalog; CVSS 3.1 rates the vulnerability 3.1 (Low), reflecting the high-privilege access barrier and constrained, non-disclosing impact.

RemediationAI

The Zephyr Project has confirmed a patch in commit 237309ea7c46ce85cedebf33dfea639aa2f5e2ca, which adds explicit (len - rx_pos) remaining-length guards before the frag_transport_setup_req cast, the frag_transport_data_header cast, and the ctx.frag_size-byte decoder read in frag_transport_package_callback(). Developers should update to the earliest Zephyr release that incorporates this commit; the exact tagged release version is not confirmed by the available input data - check the advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-845m-2m84-g5h2 for the definitive patched version. As a compensating control where firmware updates are not immediately feasible, disabling the LoRaWAN Fragmented Data Block Transport subsystem via CONFIG_LORAWAN_FRAG_TRANSPORT=n in the Kconfig board configuration removes the vulnerable code path entirely, at the cost of losing LoRaWAN FUOTA (over-the-air firmware update) capability. Strict session key management - ensuring AppSKey and NwkSKey are never exposed outside the FUOTA server and device - is the most effective operational control, since session key possession is the primary prerequisite for exploitation.

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 vulnerability resides in the Zephyr RTOS LoRaWAN Fragmented Data Block Transport subsystem (subsys/lorawan/services/frag_transport.c), identified by CPE cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*. The handler frag_transport_package_callback() iterates over a downlink receive buffer with a loop bounded only by rx_pos < len. For FRAG_SESSION_SETUP commands it casts rx_buf + rx_pos directly to a 10-byte frag_transport_setup_req struct; for DATA_FRAGMENT commands it passes &rx_buf[rx_pos] to a decoder that reads exactly ctx.frag_size bytes - neither path validated remaining buffer length before access. rx_buf aliases MacCtx.RxPayload, a 255-byte static buffer in the loramac-node MAC layer, while ctx.frag_size is attacker-chosen in a prior FRAG_SESSION_SETUP command and capped only by the compile-time constant CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE (default 232). CWE-20 (Improper Input Validation) identifies the root cause: failure to assert that (len - rx_pos) is sufficient before structure casts or decoder invocations. The fix, confirmed in commit 237309ea7c46ce85cedebf33dfea639aa2f5e2ca, adds three (len - rx_pos) < sizeof(...) / (len - rx_pos) < ctx.frag_size guards at the appropriate sites.

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

Session key possession gates all access (PR:H); LoRaWAN radio delivery sets AV:A/AC:H; overread reaches FUOTA buffers not attacker, giving C:L; no integrity impact; A:L reflects potential FUOTA data corruption.

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

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

DescriptionCVE.org

The LoRaWAN TS004 Fragmented Data Block Transport handler frag_transport_package_callback() in subsys/lorawan/services/frag_transport.c parses downlink command bytes without validating that enough payload bytes remain before each access. The loop's only bound is rx_pos < len; after consuming the one-byte command id the handler cast rx_buf + rx_pos to a 10-byte struct frag_transport_setup_req, and for a DATA_FRAGMENT command passed &rx_buf[rx_pos] to the fragment decoder, which reads exactly ctx.frag_size bytes - with no remaining-length check in either case.

The fragment size is attacker-chosen in a preceding FRAG_SESSION_SETUP command (ctx.frag_size = req->frag_size, capped at CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE, default 232). rx_buf aliases the 255-byte static MacCtx.RxPayload buffer in the loramac-node MAC layer, while len is the actual decrypted payload length. By padding a downlink with mismatched-index DATA_FRAGMENT filler commands (each advancing rx_pos by three bytes without producing an answer) and appending one matching-index fragment near the end of the payload, an attacker can make the decoder read up to roughly frag_size bytes past the end of RxPayload, copying adjacent static memory into the decoder buffers and the FUOTA flash image.

The handler runs only on downlinks that have already passed the LoRaWAN frame MIC and FRMPayload decryption, so the defect is reachable only by a party holding the device's session keys (the FUOTA server or an attacker who has compromised those keys). The out-of-bounds bytes are never returned to the sender - the only uplink emitted is a status answer carrying fragment counts - so there is no direct disclosure channel, and on typical flat-memory LoRaWAN MCUs the over-read stays within mapped memory, making a crash unlikely. The impact is therefore a bounded out-of-bounds read with limited confidentiality consequence and no write or control-flow primitive. The fix adds remaining-length guards before each access.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche RTOS for constrained IoT and LoRaWAN embedded devices
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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Controlled
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

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