Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain device LoRaWAN session keys
-
DeliverySend FRAG_SESSION_SETUP with frag_size=232
-
ExploitTransmit mismatched-index DATA_FRAGMENT fillers to advance rx_pos
-
ExecutionAppend matching-index fragment near payload end
-
PersistDecoder reads 232 bytes past RxPayload boundary
-
ImpactAdjacent 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 |
| 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 |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:A/AC:H/PR:H/UI:N/S:U/C:L/I:N/A:L
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.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
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
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.
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-66556
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB