CVE-2026-12363

MEDIUM
MEDIUM Priority: 0.01 BB Relevance: 43/100
Published: 2026-08-14 Modified: 2026-11-04 First seen: 2026-11-04 Status: active

Attack Surface

Adjacent No Auth No Interaction

CVSS Vector Breakdown

AV: Adjacent
AC: High
PR: None
UI: None
S: Unchanged
C: None
I: Low
A: Low

Description

The LoRaWAN Fragmented Data Block Transport service (subsys/lorawan/services/frag_transport.c) does not validate the fragment counter in a received DATA_FRAGMENT command before forwarding it to the configured decoder. In frag_transport_package_callback() the value frag_counter = hdr->frag_index_n & 0x3FFF is taken directly from the downlink payload and passed to the decoder, which derives an array index and flash offset as frag_counter - 1. DataFragment fragments are 1-indexed, so a frag_counter of 0 underflows that arithmetic. With the default Semtech/LoRaMAC-node decoder, this reaches FragDecoder.FragNbMissingIndex[fragCounter - 1] = 0; in FragDecoderProcess(), where fragCounter - 1 evaluates to -1 and writes a uint16_t zero out of bounds, just before the array and into the adjacent MatrixM2B recovery-matrix state of the static decoder object (CWE-787). A companion write derives a wild flash offset, but that path is rejected by the flash_area_write() bounds check. The in-tree low-memory decoder (frag_dec()) is not corrupted: its out-of-range bit-array and flash accesses are caught by sys_bitarray_ and flash_area_ bounds checks. The handler is the registered downlink callback for the fragmentation transport port, reachable whenever an active fragmentation session exists, so the triggering byte is attacker-influenceable LoRaWAN/FUOTA network input. Triggering it requires authenticated downlinks (LoRaWAN MAC session keys or a malicious/compromised network or FUOTA server) and an active fragmentation session. The impact is contained: corruption of decoder state and denial of the firmware-update (FUOTA) session rather than controllable memory corruption or code execution. The fix adds a transport-layer check that rejects frag_counter == 0, closing the defect for both decoder backends.

Weakness Classification (1)

Affected Software (2)

VendorProductVersion
zephyrproject zephyr 3.7.0 < 4.3.2
zephyrproject zephyr 4.4.0 < 4.5.0

Bug Bounty Relevance

43 / 100
✓ No authentication
✓ No user interaction

CVSS Score

4.2 / 10.0 v3.1
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L

EPSS — Exploitation Probability

0.24%
Raw Score 0.002440
Percentile 15.7%
Date 2026-11-14

EPSS Trend

2026-11-14
0.00244
2026-11-13
0.00244
2026-11-12
0.00244
2026-11-10
0.00244
2026-11-09
0.00244
2026-11-08
0.00244
2026-11-07
0.00244
2026-11-06
0.00244
2026-11-05
0.00244
2026-11-04
0.00244
2026-11-03
0.00244

Intelligence Sources

mitre ref →
nvd ref →