Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri — Proof-of-concept-Exploit für CVE-2026-10672, ein Out-of-Bounds-Lesen im LwM2M-Firmware-Update-Pull-Client von Zephyr RTOS. Enthält eine eigenständige C-Reproduktion und einen bösartigen CoAP/LwM2M-Server zum Testen. | Kitploit
Tools/GitHubGitHub/hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationFuzzingPapers & ForschungLernen & BildungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
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

Proof-of-concept-Exploit für CVE-2026-10672, ein Out-of-Bounds-Lesen im LwM2M-Firmware-Update-Pull-Client von Zephyr RTOS. Enthält eine eigenständige C-Reproduktion und einen bösartigen CoAP/LwM2M-Server zum Testen.

Repository anzeigen
vor 1 MonatNoch nicht geprüft

CVE-2026-10672 — Zephyr LwM2M Firmware-Update Out-of-Bounds-Read PoC

Proof of Concept für CVE-2026-10672, einen Out-of-Bounds-Read im LwM2M-Firmware-Update-Pull-Client von Zephyr RTOS (subsys/net/lib/lwm2m/lwm2m_pull_context.c).

Schwachstelle

  • CVE: CVE-2026-10672
  • CVSS: 8,2 Hoch (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L)
  • CWE: CWE-125 (Out-of-bounds Read)
  • Komponente: lwm2m_pull_context_start_transfer() in lwm2m_pull_context.c
  • Ursache: memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) kopiert genau 128 Byte in char uri[128] ohne NUL-Terminator, wenn die vom Server bereitgestellte Package-URI (/5/0/1) ≥ 128 Byte ist. Nachfolgende strlen(context.uri), http_parser_parse_url() und der CoAP-PROXY_URI-Option-Anhang lesen dann über den Puffer hinaus in angrenzenden Strukturspeicher (is_firmware_uri, die Funktionszeiger result_cb / write_cb und den DTLS-Verbindungskontext). Die überlesenen Bytes werden in der ausgehenden CoAP-Anfrage exfiltriert.
  • Puffer: context.uri[128] (CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, Standard 128; LWM2M_PACKAGE_URI_LEN ist als #define darauf definiert)
  • Betroffen: Zephyr v3.0.0 bis v4.4.0 (das Refactoring des Pull-Kontexts, das die Kopie einführte, wurde erstmals in v3.0.0 ausgeliefert)
  • Behoben: Zephyr v4.4.1 und v4.3.1
  • Fix-Commit: 99a164df5cea5af76e32b57c6d51854f018969a2 – fügt strlen(uri) >= sizeof(context.uri) → -ENOMEM hinzu und wechselt zu strcpy().

Inhalt

DateiZweck
poc.c

C-Reproduktion bauen und ausführen

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

Erwartet: Eine 200-Byte-Package-URI erzeugt eine CoAP-PROXY_URI-Option von 141 Byte – die 128-Byte-URI plus 13 Byte, die aus context.is_firmware_uri, Struktur-Padding und den Funktionszeigern result_cb/write_cb ausgelesen werden. Der behobene Codepfad weist die URI mit -ENOMEM zurück und kopiert nichts.

ASan-Bestätigung

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

Der Testallokator reserviert exakt 128 Byte, füllt sie mit Nicht-NUL-Bytes (Spiegelung eines vollen context.uri ohne Terminator) und ruft strlen() auf:

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

Den bösartigen LwM2M-Server ausführen

root@kitploit:~
# CoAP-Pakete bauen und inspizieren, ohne zu senden:
python3 lwm2m_evil_server.py --dry-run --uri-len 200

# An einen anfälligen Client senden (NoSec CoAP, UDP/5683):
python3 lwm2m_evil_server.py --target 10.0.0.42 --port 5683 --uri-len 200 --listen 2

Das Skript sendet ein CoAP PUT /5/0/1 (LwM2M-Schreiben der Package-URI-Ressource) gefolgt von einem CoAP POST /5/0/2 (LwM2M-Ausführen Update, das den Firmware-Pull startet und den Fehler auslöst). Im Produktivbetrieb von LwM2M läuft die Sitzung über DTLS (UDP/5684); der Angreifer im Rahmen ist ein bösartiger/kompromittierter Verwaltungsserver oder ein Pfadgegner, wenn die DTLS-Serverauthentifizierung nicht erzwungen wird.

Vollständiger Artikel

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

Haftungsausschluss

Nur für autorisierte Sicherheitsforschung und Bildungszwecke. Verwenden Sie diese Werkzeuge nicht gegen Geräte, die Ihnen nicht gehören oder für deren Test Sie keine ausdrückliche Erlaubnis haben.

Tool herunterladen
Eigenständige C-Reproduktion der anfälligen/behobenen Codepfade. Deklariert originalgetreu struct firmware_pull_context (den uri[128]-Puffer plus die angrenzenden Felder, die überlesen werden) und den leckenden CoAP-PROXY_URI-Konsumenten.
lwm2m_evil_server.pyMinimaler CoAP/LwM2M-Server, der die überdimensionierte Package-URI an /5/0/1 eines anfälligen Clients über UDP (NoSec-Modus) liefert – die Netzwerk-Übermittlungshälfte des Angriffs. Keine externen Abhängigkeiten.