CVE-2026-13480 in Zephyrinformation

Résumé

par VulDB • 26/08/2026

Le gestionnaire de blocs de données fragmentés (Fragmented Data Block Transport) `frag_transport_package_callback()` dans le fichier `subsyst/lorawan/services/frag_transport.c` du protocole LoRaWAN TS004 analyse les octets des commandes downlink sans valider qu'il reste suffisamment d'octets de payload avant chaque accès. La seule borne de la boucle est `rx_pos < len`; après avoir consommé l'identifiant de commande sur un octet, le gestionnaire caste `rx_buf + rx_pos` en une structure `frag_transport_setup_req` de 10 octets, et pour une commande `DATA_FRAGMENT`, il transmet `&rx_buf[rx_pos]` au décodeur de fragments, qui lit exactement `ctx.frag_size` octêts — sans aucune vérification de la longueur restante dans les deux cas.

La taille des fragments est choisie par l'attaquant lors d'une commande précédente `FRAG_SESSION_SETUP` (`ctx.frag_size = req->frag_size`, plafonnée à `CONFIG_LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE`, valeur par défaut de 232). Le tampon `rx_buf` alias le tampon statique `MacCtx.RxPayload` de 255 octets dans la couche MAC loramac-node, tandis que `len` correspond à la longueur réelle du payload déchiffré. En remblayant un downlink avec des commandes de remplissage `DATA_FRAGMENT` aux index non concordants (chacune faisant avancer `rx_pos` de trois octets sans produire de réponse) et en ajoutant un fragment d'index correspondant près de la fin du payload, un attaquant peut amener le décodeur à lire jusqu'à environ `frag_size` octêts au-delà de la fin de RxPayload, copiant ainsi de la mémoire statique adjacente dans les tampons du décodeur et l'image flash FUOTA.

Le gestionnaire ne s'exécute que sur les downlinks ayant déjà passé le MIC (Message Integrity Code) LoRaWAN et le déchiffrement FRMPayload ; cette vulnérabilité n'est donc atteignable que par une partie disposant des clés de session du dispositif (le serveur FUOTA ou un attaquant qui aurait compromis ces clés). Les octets hors limites lus ne sont jamais renvoyés à l'expéditeur — la seule uplink émise est une réponse d'état contenant les comptes de fragments — il n'y a donc pas de canal de divulgation direct, et sur les microcontrôleurs LoRaWAN typiques à mémoire plate, cette lecture excessive reste dans la mémoire mappée, rendant un crash peu probable. L'impact est donc une lecture hors limites bornée avec des conséquences limitées en matière de confidentialité, sans primitive d'écriture ni de contrôle du flux d'exécution. La correction ajoute des garde-fous vérifiant la longueur restante avant chaque accès.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Zephyr

Réserver

27/06/2026

Divulgation

26/08/2026

Modérer

accepté

Entrée

VDB-395788

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!