Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri — Exploit de preuve de concept pour CVE-2026-10672, une lecture hors limites dans le client de tirage de mise à jour de firmware LwM2M de Zephyr RTOS. Comprend une reproduction C autonome et un serveur CoAP/LwM2M malveillant pour les tests. | Kitploit
Outils/GitHubGitHub/hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationFuzzingArticles et RechercheApprentissage et ÉducationExploitation de Binaires

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHub
hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

Exploit de preuve de concept pour CVE-2026-10672, une lecture hors limites dans le client de tirage de mise à jour de firmware LwM2M de Zephyr RTOS. Comprend une reproduction C autonome et un serveur CoAP/LwM2M malveillant pour les tests.

Voir le dépôt
il y a 1 moisPas encore vérifié
Partager

CVE-2026-10672 — Preuve de concept de lecture hors limites de la mise à jour du firmware LwM2M de Zephyr

Preuve de concept pour CVE-2026-10672, une lecture hors limites dans le client de mise à jour du firmware LwM2M de Zephyr RTOS (subsys/net/lib/lwm2m/lwm2m_pull_context.c).

Vulnérabilité

  • CVE: CVE-2026-10672
  • CVSS: 8.2 Élevé (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L)
  • CWE: CWE-125 (Lecture hors limites)
  • Composant: lwm2m_pull_context_start_transfer() dans lwm2m_pull_context.c
  • Cause racine: memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) copie exactement 128 octets dans char uri[128] sans terminateur NUL lorsque le Package URI fourni par le serveur (/5/0/1) est ≥ 128 octets. Les appels ultérieurs à strlen(context.uri), http_parser_parse_url() et l'option CoAP PROXY_URI ajoutent puis lisent au-delà du tampon dans la mémoire de la structure adjacente (is_firmware_uri, les pointeurs de fonction result_cb / write_cb, et le contexte de connexion DTLS). Les octets lus en excès sont exfiltrés dans la requête CoAP sortante.
  • Tampon: context.uri[128] (CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, défaut 128 ; LWM2M_PACKAGE_URI_LEN est #define à cette valeur)
  • Affecté: Zephyr v3.0.0 à v4.4.0 (la refonte du contexte de tirage qui a introduit la copie a été livrée pour la première fois dans v3.0.0)
  • Corrigé: Zephyr v4.4.1 et v4.3.1
  • Commit de correction: 99a164df5cea5af76e32b57c6d51854f018969a2 — ajoute strlen(uri) >= sizeof(context.uri) → -ENOMEM et passe à strcpy().

Contenu

FichierObjectif
poc.c

Construire et exécuter la reproduction C

root@kitploit:~
gcc -O0 -g -o poc poc.c
./poc

Attendu : un Package URI de 200 octets produit une option CoAP PROXY_URI de 141 octets — l'URI de 128 octets plus 13 octets divulgués depuis context.is_firmware_uri, le padding de la structure et les pointeurs de fonction result_cb/write_cb. Le chemin de code corrigé rejette l'URI avec -ENOMEM et ne copie rien.

Confirmation ASan

root@kitploit:~
gcc -O0 -g -fsanitize=address -o poc-asan poc.c
./poc-asan

La sonde alloue exactement 128 octets, les remplit d'octets non NUL (reflétant un context.uri complet sans terminateur) et appelle strlen() :

root@kitploit:~
ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 129 at 0x...
0x... is located 0 bytes after 128-byte region [...,0x...)

Exécuter le serveur LwM2M malveillant

root@kitploit:~
# Build and inspect the CoAP packets without sending:
python3 lwm2m_evil_server.py --dry-run --uri-len 200

# Send to a vulnerable client (NoSec CoAP, UDP/5683):
python3 lwm2m_evil_server.py --target 10.0.0.42 --port 5683 --uri-len 200 --listen 2

Le script envoie une requête CoAP PUT /5/0/1 (écriture LwM2M de la ressource Package URI) suivie d'une requête CoAP POST /5/0/2 (exécution LwM2M Update, qui démarre le tirage du firmware et déclenche le bogue). En production, LwM2M, la session s'exécute sur DTLS (UDP/5684) ; l'attaquant dans le périmètre est un serveur de gestion malveillant/compromis, ou un adversaire sur le chemin lorsque l'authentification du serveur DTLS n'est pas appliquée.

Article complet

https://www.hunt-benito.com/blog/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri/

Avertissement

À des fins de recherche en sécurité autorisée et d'éducation uniquement. N'utilisez pas ces outils contre des appareils que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.

Télécharger l’outil
Reproduction autonome en C des chemins de code vulnérable/corrigé. Redéclare fidèlement struct firmware_pull_context (le tampon uri[128] plus les champs adjacents qui sont lus en excès) et le consommateur fuiteur CoAP PROXY_URI.
lwm2m_evil_server.pyServeur CoAP/LwM2M minimal qui délivre le Package URI surdimensionné à /5/0/1 d'un client vulnérable sur UDP (mode NoSec) — la moitié de livraison réseau de l'attaque. Aucune dépendance externe.