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
Tough-Cookie-v2.5.0-Patched — Schwachstellenforschung zu CVE-2023-26136 | Kitploit
Tools/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
Statische AnalyseSchwachstellenanalyseCode-AnalyseExploitationWebsicherheitLernen & Bildung
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

Schwachstellenforschung zu CVE-2023-26136

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 1 JahrNoch nicht geprüft

Tough-Cookie v2.5.0 Patched – Behebung der Prototype Pollution

Übersicht

Dieses Repository enthält eine gepatchte Version des Pakets tough-cookie, Version 2.5.0, um die kritische Prototype Pollution-Sicherheitslücke (CVE-2023-26136) zu beheben. Die Schwachstelle ermöglicht es Angreifern, die Prototyp-Kette zu manipulieren, indem sie Eigenschaften in JavaScript-Objekte einschleusen. Dies kann zu unerwartetem Verhalten, Sicherheitsrisiken wie Remote-Code-Ausführung und Kompatibilitätsproblemen in Anwendungen führen, die auf dieses Paket angewiesen sind.

Beschreibung der Sicherheitslücke

Versionen des Pakets tough-cookie vor v4.1.3 sind anfällig für Prototype Pollution, wenn der CookieJar mit dem Modus rejectPublicSuffixes=false verwendet wird. Die Schwachstelle entsteht durch unsachgemäße Handhabung von Cookies, insbesondere wenn cookie.domain auf __proto__ gesetzt wird. Dadurch können Angreifer das zentrale Object.prototype-Objekt verändern, was weitreichende Probleme in der gesamten Anwendung verursachen kann.

Weitere Details zu CVE-2023-26136 finden Sie unter:

  • NVD – CVE-2023-26136
  • Snyk – CVE-2023-26136 in Tough-Cookie
  • GitHub – Issue #282

Mögliche Risiken von Prototype Pollution

Prototype Pollution kann mehrere kritische Risiken mit sich bringen, darunter:

  • Sicherheitslücken: Durch die Veränderung des Basis-Object.prototype können Angreifer das Verhalten von Objekten manipulieren, Rechte erweitern, auf sensible Daten zugreifen oder Sicherheitsmechanismen in der Anwendung umgehen.

  • Denial of Service (DoS): Die Verschmutzung der Prototyp-Kette kann unerwartetes Systemverhalten verursachen, das zu Abstürzen, Endlosschleifen oder Ressourcenerschöpfung führt und die Anwendung für legitime Benutzer unzugänglich macht.

  • Kompatibilitätsprobleme: Die Änderung des Object.prototype kann Fehler und unerwartetes Verhalten bei der Interaktion mit anderen Bibliotheken oder Frameworks hervorrufen. Abhängigkeiten, die auf Prototyp-Ketten angewiesen sind, können brechen, was zu Integrationsproblemen oder fehlerhaftem Anwendungsverhalten bei Updates führt.

  • Unerwartetes Anwendungsverhalten: Prototype Pollution kann zu unberechenbarem Programmverhalten führen, einschließlich Datenkorruption, Sicherheitsverletzungen und potenziell weiteren Exploit-Möglichkeiten.

Wichtige Korrekturen

Der Patch ändert die MemoryCookieStore-Klasse, insbesondere die Methode putCookie, um Prototype Pollution durch die Erstellung prototyploser Objekte zu verhindern. Die wichtigsten Änderungen umfassen:

  1. Verwendung von Object.create(null) anstelle von {}, um Objekte ohne Prototyp zu erzeugen.
  2. Behebung der Schwachstelle, bei der Cookies mit cookie.domain = __proto__ gesetzt werden konnten.
  3. Hinzufügen von Tests, um zu überprüfen, ob die Schwachstelle ordnungsgemäß behoben ist.

Installieren der gepatchten Version

Um die gepatchte Version von tough-cookie zu installieren, verwenden Sie den folgenden Befehl:

root@kitploit:~
npm install ./tough-cookie-2.5.0-PATCHED.tgz

Testen der Korrektur

Dieses Repository enthält einen Komponententest, der überprüft, ob die Prototype-Pollution-Sicherheitslücke erfolgreich behoben wurde.

Der Test mit dem Namen prototype_pollution_test prüft speziell, ob das Setzen von Cookies mit einer Domain von __proto__ nicht mehr die JavaScript-Prototyp-Kette beeinflusst. Dadurch wird sichergestellt, dass Prototype Pollution verhindert wird und die Integrität der Anwendung erhalten bleibt.

Um die Tests auszuführen und die Korrektur zu bestätigen, führen Sie den folgenden Befehl aus:

root@kitploit:~
npm test

Exploit-Demonstration

Um den Exploit sowohl in der ursprünglichen als auch in der gepatchten Version zu demonstrieren, folgen Sie den Schritten unten:

Ursprüngliche anfällige Version

Installieren Sie die anfällige Version von tough-cookie:

root@kitploit:~
npm install [email protected] && node index.js

Erwartete Ausgabe:

root@kitploit:~
Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

Dies zeigt, dass der Prototyp eines Objekts verschmutzt wurde, was die Sicherheitslücke in der Originalversion bestätigt.

Gepatchte Version

root@kitploit:~
 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

Erwartete Ausgabe:

root@kitploit:~
EXPLOIT FAILED

Dies zeigt, dass der Exploit erfolgreich blockiert wurde, was die Behebung der Prototype-Pollution-Sicherheitslücke bestätigt.

Vorgehen und durchgeführte Schritte

Der Prozess zur Behebung der Prototype Pollution-Sicherheitslücke in tough-cookie v2.5.0 umfasste mehrere methodische Schritte, um sicherzustellen, dass die Korrektur gründlich und effektiv ist. Nachfolgend ein Überblick über mein Vorgehen:

1. Verständnis der Sicherheitslücke

Ich begann mit der Recherche zu Prototype Pollution (CVE-2023-26136), um deren Auswirkungen zu verstehen. Die Schwachstelle ermöglicht es Angreifern, Eigenschaften in die Prototyp-Kette über die cookie.domain-Eigenschaft einzuschleusen, was Sicherheitsrisiken wie Remote-Code-Ausführung mit sich bringen kann.

2. Recherche zu bestehenden Korrekturen

Ich untersuchte GitHub-Issues und Diskussionen zur Sicherheitslücke, einschließlich der Korrektur in tough-cookie v4.1.3, die Object.create(null) verwendet, um Prototype Pollution zu verhindern. Dies half mir, die erforderlichen Änderungen für v2.5.0 zu identifizieren.

3. Analyse der anfälligen und gepatchten Versionen

Ich verglich v2.5.0 mit v4.1.3, um die Unterschiede zu verstehen und die notwendigen Änderungen genau zu bestimmen. Die wichtigste Änderung war die Verwendung prototyploser Objekte, um Exploits zu verhindern.

4. Implementierung der Lösung

Ich aktualisierte die MemoryCookieStore-Klasse, um Object.create(null) anstelle von {} zu verwenden und so Prototype Pollution zu verhindern.

5. Testen der Lösung

Ich schrieb Komponententests, um die Korrektur zu überprüfen, und erstellte ein Exploit-Demonstrationsskript (index.js), das zeigt, wie die Schwachstelle in der gepatchten Version verhindert wird.

6. Dokumentation der Korrektur

Schließlich dokumentierte ich die Korrektur mit Installations- und Testanweisungen und erstellte die gepatchte Version (tough-cookie-2.5.0-PATCHED.tgz) zur einfachen Verteilung.

Zusammenfassung der Änderungen

Dateien, die gegenüber v2.5.0 hinzugefügt oder bearbeitet wurden

  • index.js: Hauptskript zur Demonstration der Sicherheitslücke und der Korrektur.
  • lib/memstore.js: Die modifizierte MemoryCookieStore-Klasse zur Verhinderung von Prototype Pollution.
  • test/ietf_data/parser.json: Aktualisiert, um veraltete Daten in den Testdaten zu korrigieren.
  • test/prototype_pollution_test.js: Komponententests zur Überprüfung, dass Prototype Pollution behoben ist.
  • tough-cookie-2.5.0-PATCHED.tgz: Die gepatchte Version des tough-cookie-Pakets.
Tool herunterladen