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
multiparty-CVE-2026-8161 — Proof-of-Concept-Exploit für CVE-2026-8161, eine Denial-of-Service-Schwachstelle im Multiparty-Multipart-Parser, die Prototype Pollution demonstriert, was zu einer unbehandelten Ausnahme und einem Absturz führt. | Kitploit
Tools/GitHubGitHub/ser0n-ath/multiparty-cve-2026-8161
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheit
GitHubser0n-ath/multiparty-cve-2026-8161

multiparty-CVE-2026-8161

Proof-of-Concept-Exploit für CVE-2026-8161, eine Denial-of-Service-Schwachstelle im Multiparty-Multipart-Parser, die Prototype Pollution demonstriert, was zu einer unbehandelten Ausnahme und einem Absturz führt.

Repository anzeigen
vor 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-8161

Proof of Concept für CVE-2026-8161 (Multiparty)

Beschreibung

[email protected] und frühere Versionen sind anfällig für Denial-of-Service durch eine unbehandelte Ausnahme (uncaught exception).

Der Parser speichert hochgeladene Felder und Dateien in einfachen JavaScript-Objekten und unterscheidet nicht sicher zwischen Parser-eigenen Schlüsseln und geerbten Objekteigenschaften. Ein manipulierter Multipart-Feldname kann dazu führen, dass der Parser unerwartete Werte aus der Prototyp-Kette liest und während der Verarbeitung des Uploads abstürzt.

Jeder Dienst, der Multipart-Uploads über anfällige Versionen von multiparty akzeptiert, kann betroffen sein.

Wie es funktioniert

Das Problem tritt auf, weil fields und files einfache JavaScript-Objekte sind, aber wie sichere Schlüssel-Wert-Zuordnungen für benutzerkontrollierte Namen verwendet werden.

root@kitploit:~
var fieldsArray = fields[name] || (fields[name] = [])
fieldsArray.push(value)

var filesArray = files[name] || (files[name] = [])
filesArray.push(file)

Das Problem ist, dass fields[name] und files[name] eine normale JavaScript-Eigenschaftssuche verwenden. Bei einfachen Objekten kann diese Suche geerbte Eigenschaften aus der Prototyp-Kette zurückgeben, anstatt nur Werte, die direkt auf dem Objekt gespeichert sind.

Wenn der Name __proto__ ist, kann JavaScript ihn über die Prototyp-Kette auflösen und das geerbte Prototyp-Objekt anstelle von undefined zurückgeben. Da dieser Wert truthy ist, wird die Fallback-Zuweisung übersprungen und der Parser erstellt nie ein echtes Array für dieses Feld.

Der Patch behebt dies, indem nur Schlüssel vertraut werden, die direkt zum Objekt gehören:

root@kitploit:~
var filesArray = Object.prototype.hasOwnProperty.call(files, name)
  ? files[name]
  : undefined

Dann hängt der Parser nur an, wenn der gespeicherte Wert tatsächlich ein Array ist, andernfalls initialisiert er ein neues:

root@kitploit:~
if (Array.isArray(filesArray)) {
  filesArray.push(file)
} else {
  files[name] = [file]
}

Wenn .push() auf einen Wert aufgerufen wird, der kein Array ist, wird ein TypeError ausgelöst. Da dies innerhalb des asynchronen Parsing-Ablaufs von Multiparty geschieht, kann die normale Fehlerbehandlung auf Aufruferseite dies möglicherweise nicht abfangen, sodass die Ausnahme den Prozess zum Absturz bringen kann.

Zeitplan

  • 2026-01-12: Schwachstelle an die multiparty-Maintainer gemeldet.
  • 2026-01-17: Bericht akzeptiert, Behebungsarbeiten begannen.
  • 2026-02-14: Koordinierte Überprüfung mit @pillarjs/security-triage gestartet.
  • 2026-02-16: Patch-Diskussionen -> Object.prototype.hasOwnProperty.call(...).
  • 2026-03-29: Advisory-Titel und Metadaten aktualisiert, um die Denial-of-Service-Auswirkung widerzuspiegeln.
  • 2026-04: Behebungsansatz überprüft und genehmigt.
  • 2026-05-08: Advisory finalisiert und CVE-2026-8161 reserviert.
  • 2026-05-11: Fix in pillarjs:master zusammengeführt.

Demo-Verwendung

Führen Sie die Mocklab-Umgebung aus und senden Sie die Test-Payload an beide Ziele:

root@kitploit:~
docker compose up -d
python3 secdos.py -u http://localhost:8080/api/submit
python3 secdos.py -u http://localhost:8081/api/submit

Das anfällige Ziel wird abstürzen und [PASS] zurückgeben. Das gepatchte Ziel wird die Anfrage sicher verarbeiten und [FAIL] zurückgeben.

Wenn Sie es erneut gegen den anfälligen Server ausführen, starten Sie ihn zuerst neu

Setup-Übersicht

Anfälliger Server

  • Zugriff auf localhost:8080
  • Nginx-Server als Reverse-Proxy, bei Fehlern wird eine Fehlerseite mit Status 502 angezeigt
  • Nginx löst die Adresse des anfälligen Servers über den Dienstnamen auf
  • Verwendet multiparty 4.2.3 (anfällig)

Gepatchter Server

  • Läuft und wird auf localhost:8081 aufgerufen
  • Nginx nicht erforderlich
  • Verwendet multiparty 4.3.0 (gepatcht)

Das Erstellen eines gepatchten Images aus dem Dockerfile erfordert ein Build-Argument PATCHED=1

Referenzen

https://github.com/pillarjs/multiparty/security/advisories/GHSA-qxch-whhj-8956 https://github.com/pillarjs/multiparty/commit/8ee6aca09aca29e923da48da8260c87aa964b282

Tool herunterladen