CVE-2026-12363 in Zephyrinfo

Zusammenfassung

von VulDB • 14.08.2026

Der Dienst „LoRaWAN Fragmented Data Block Transport“ (subsys/lorawan/services/frag_transport.c) validiert den Fragmentzähler in einem empfangenen DATA_FRAGMENT-Befehl nicht, bevor er an den konfigurierten Decoder weitergeleitet wird. In frag_transport_package_callback() wird der Wert frag_counter = hdr->frag_index_n & 0x3FFF direkt aus dem Downlink-Payload übernommen und an den Decoder übergeben, der daraus einen Array-Index sowie einen Flash-Offset als frag_counter - 1 ableitet. Da DataFragment-Fragmente einsbasiert (1-indexed) sind, führt ein frag_counter von 0 zu einem Unterlauf dieser Arithmetik.

Beim Standarddecoder Semtech/LoRaMAC-node wird in FragDecoderProcess() die Zuweisung FragDecoder.FragNbMissingIndex[fragCounter - 1] = 0; erreicht, wobei fragCounter - 1 den Wert -1 ergibt und eine uint16_t-Null außerhalb der Array-Grenzen schreibt – direkt vor das Array und in den angrenzenden MatrixM2B-Recovery-Matrix-Zustand des statischen Decoder-Objekts (CWE-787). Ein begleitender Schreibzugriff leitet einen wilden Flash-Offset ab, dieser Pfad wird jedoch durch die Bereichsprüfung von flash_area_write() verworfen. Der im Codebaum enthaltene Low-Memory-Decoder (frag_dec()) wird nicht beschädigt: Seine Zugriffe auf bitbasierte Arrays und den Speicher außerhalb des gültigen Bereichs werden durch die Bereichsprüfungen von sys_bitarray_ bzw. flash_area_ abgefangen.

Der Handler ist der registrierte Downlink-Callback für das Fragmentierungs-Transport-Port, der immer dann erreichbar ist, wenn eine aktive Fragmentierungssitzung existiert; somit ist das auslösende Byte ein angreifergesteuerter LoRaWAN/FUOTA-Netzwerkeingang. Das Auslösen erfordert authentifizierte Downlinks (LoRaWAN-MAC-Sitzungsschlüssel oder einen böswilligen/kompromittierten Netzwerk- bzw. FUOTA-Server) und eine aktive Fragmentierungssitzung. Die Auswirkungen sind begrenzt: Es kommt zu einer Beschädigung des Decoder-Zustands sowie zur Verweigerung der Firmware-Aktualisierung (FUOTA)-Sitzung, nicht jedoch zu kontrollierbarer Speicherkorruption oder Codeausführung. Der Fix fügt eine Transport-Ebene-Prüfung hinzu, die frag_counter == 0 verwirft und damit den Fehler für beide Decoder-Backends schließt.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Zephyr

Reservieren

16.06.2026

Veröffentlichung

14.08.2026

Moderieren

akzeptiert

Eintrag

VDB-390072

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!