CVE-2026-13480 in Zephyrinfo

Zusammenfassung

von VulDB • 26.08.2026

Der Fragmentierte-Datenblock-Transport-Handler `frag_transport_package_callback()` in `subsyst/lorawan/services/frag_transport.c` für LoRaWAN TS004 verarbeitet Downlink-Befehlsbytes, ohne zu validieren, ob vor jedem Zugriff noch genügend Payload-Bytes vorhanden sind. Die einzige Begrenzung der Schleife ist `rx_pos < len`; nach dem Konsumieren des ein Byte langen Befehl-ID-Casts der Handler `rx_buf + rx_pos` auf eine 10-Byte-Struktur vom Typ `frag_transport_setup_req`, und für einen DATA_FRAGMENT-Befehl wird `&rx_buf[rx_pos]` an den Fragment-Decodierer übergeben, der genau `ctx.frag_size` Bytes liest – ohne dass in beiden Fällen eine Prüfung des verbleibenden Längenwerts erfolgt.

Die Fragmentgröße wird vom Angreifer durch einen vorangehenden FRAG_SESSION_SETUP-Befehl gewählt (`ctx.frag_size = req->frag_size`, begrenzt auf CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE, Standardwert 232). `rx_buf` ist ein Alias für den statischen MacCtx.RxPayload-Puffer mit 255 Bytes in der LoRaMAC-MAC-Schicht, während `len` die tatsächliche entschlüsselte Payload-Länge angibt. Durch das Auffüllen eines Downlinks mit DATA_FRAGMENT-Füllbefehlen mit nicht übereinstimmenden Indizes (jeder erhöht rx_pos um drei Bytes ohne Antwort zu erzeugen) und dem Anhängen eines einzelnen Fragmentes mit passendem Index am Ende der Payload kann ein Angreifer den Decodierer dazu bringen, bis zu etwa frag_size Bytes über das Ende von RxPayload hinaus zu lesen. Dabei werden benachbarte statische Speicherbereiche in die Decoder-Puffer sowie das FUOTA-Flash-Bild kopiert.

Der Handler wird nur für Downlinks ausgeführt, die bereits die LoRaWAN-Framework-MIC und FRMPayload-Decodierung bestanden haben; der Fehler ist daher nur von einer Partei erreichbar, die über die Sitzungsschlüssel des Geräts verfügt (der FUOTA-Server oder ein Angreifer, der diese Schlüssel kompromittiert hat). Die Out-of-Bounds-Bytes werden niemals an den Absender zurückgegeben – das einzige emittierte Uplink ist eine Statusantwort mit Fragmentzählern –, sodass kein direkter Offenlegungskanal besteht. Auf typischen LoRaWAN-MCUs mit flachem Speicher bleibt der Overread innerhalb des zugewiesenen Speichers, was einen Absturz unwahrscheinlich macht. Die Auswirkung ist daher ein begrenztes Out-of-Bounds-Lesen mit eingeschränkter Vertraulichkeitsauswirkung und ohne Write- oder Control-Flow-Primitive. Der Fix fügt vor jedem Zugriff Guards für die verbleibende Länge hinzu.

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

Zuständig

Zephyr

Reservieren

27.06.2026

Veröffentlichung

26.08.2026

Moderieren

akzeptiert

Eintrag

VDB-395788

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Want to know what is going to be exploited?

We predict KEV entries!