Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Tough-Cookie-v2.5.0-Patched — Correctif pour tough-cookie v2.5.0 corrigeant la vulnérabilité de pollution de prototype CVE-2023-26136 avec Object.create(null) dans MemoryCookieStore, incluant une démonstration d’exploitation et des tests unitaires. | Kitploit
Outils/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeExploitationSécurité WebApprentissage et Éducation
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

Correctif pour tough-cookie v2.5.0 corrigeant la vulnérabilité de pollution de prototype CVE-2023-26136 avec Object.create(null) dans MemoryCookieStore, incluant une démonstration d’exploitation et des tests unitaires.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
5il y a 1 anPas encore vérifié
Partager

Tough-Cookie v2.5.0 Patché - Correction de la Pollution de Prototype

Aperçu

Ce dépôt contient une version patchée du paquet tough-cookie, version 2.5.0, pour corriger la vulnérabilité critique de Pollution de Prototype (CVE-2023-26136). La vulnérabilité permet à des attaquants de manipuler la chaîne de prototypes en injectant des propriétés dans les objets JavaScript. Cela peut entraîner des comportements inattendus, des risques de sécurité tels que l'exécution de code à distance, et des problèmes de compatibilité dans les applications utilisant ce paquet.

Description de la Vulnérabilité

Les versions du paquet tough-cookie antérieures à la v4.1.3 sont vulnérables à la Pollution de Prototype lorsqu'elles utilisent CookieJar avec le mode rejectPublicSuffixes=false. La vulnérabilité provient d'une gestion incorrecte des cookies, notamment lorsque cookie.domain est défini sur . Cela permet aux attaquants de modifier l'objet de base, provoquant potentiellement des problèmes généralisés dans l'application.

__proto__
Object.prototype

Pour plus de détails sur la CVE-2023-26136, consultez :

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 dans Tough-Cookie
  • GitHub - Problème #282

Risques Potentiels de la Pollution de Prototype

La pollution de prototype peut introduire plusieurs risques critiques, notamment :

  • Vulnérabilités de Sécurité : En modifiant l'Object.prototype de base, les attaquants peuvent manipuler le comportement des objets, potentiellement escalader les privilèges, accéder à des données sensibles, ou contourner les mécanismes de sécurité de l'application.

  • Déni de Service (DoS) : Polluer la chaîne de prototypes peut provoquer des comportements inattendus dans le système, entraînant des plantages, des boucles infinies ou une épuisement des ressources, rendant l'application indisponible pour les utilisateurs légitimes.

  • Problèmes de Compatibilité : Modifier l'Object.prototype peut provoquer des erreurs et des comportements inattendus lors de l'interaction avec d'autres bibliothèques ou frameworks. Les dépendances qui reposent sur les chaînes de prototypes peuvent se casser, entraînant des problèmes d'intégration ou un comportement défectueux de l'application lors des mises à jour.

  • Comportement Inattendu de l'Application : La pollution de prototype peut conduire à un comportement erratique du programme, y compris la corruption de données, les failles de sécurité, et potentiellement exposer l'application à d'autres exploits.

Corrections Clés

Le patch consiste à modifier la classe MemoryCookieStore, plus précisément la méthode putCookie, pour empêcher la pollution de prototype en créant des objets sans prototype. Les changements clés incluent :

  1. Utilisation de Object.create(null) au lieu de {} pour créer des objets sans prototype.
  2. Correction de la vulnérabilité où les cookies pouvaient être définis avec cookie.domain = __proto__.
  3. Ajout de tests pour vérifier que la vulnérabilité est correctement traitée.

Installation de la Version Patchée

Pour installer la version patchée de tough-cookie, utilisez la commande suivante :

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

Test de la Correction

Ce dépôt inclut un test unitaire conçu pour vérifier que la vulnérabilité de pollution de prototype a été corrigée avec succès.

Le test, nommé prototype_pollution_test, vérifie spécifiquement que la définition de cookies avec un domaine de __proto__ n'affecte plus la chaîne de prototypes JavaScript. Cela garantit que la pollution de prototype est empêchée, préservant l'intégrité de l'application.

Pour exécuter les tests et confirmer la correction, exécutez la commande suivante :

root@kitploit:~
npm test

Démonstration de l'Exploit

Pour démontrer l'exploit dans les versions originale et patchée, suivez les étapes ci-dessous :

Version Originale Vulnérable

Installez la version vulnérable de tough-cookie :

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

Sortie Attendue :

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

Cela indique que le prototype d'un objet a été pollué, confirmant que la vulnérabilité est présente dans la version originale.

Version Patchée

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

Sortie Attendue :

root@kitploit:~
EXPLOIT FAILED

Cela montre que l'exploit a été bloqué avec succès, confirmant que la vulnérabilité de pollution de prototype a été corrigée.

Approche et Étapes Suivies

Le processus de correction de la vulnérabilité de Pollution de Prototype dans tough-cookie v2.5.0 a impliqué plusieurs étapes méthodiques pour garantir que la correction soit complète et efficace. Voici un aperçu de l'approche que j'ai suivie :

1. Comprendre la Vulnérabilité

J'ai commencé par rechercher la Pollution de Prototype (CVE-2023-26136) pour comprendre son impact. La vulnérabilité permet aux attaquants d'injecter des propriétés dans la chaîne de prototypes via la propriété cookie.domain, posant potentiellement des risques de sécurité comme l'exécution de code à distance.

2. Rechercher les Corrections Existantes

J'ai exploré les problèmes GitHub et les discussions autour de la vulnérabilité, y compris la correction dans tough-cookie v4.1.3, qui utilise Object.create(null) pour empêcher la pollution de prototype. Cela m'a aidé à identifier les changements nécessaires pour corriger la v2.5.0.

3. Analyser les Versions Vulnérables et Patchées

J'ai comparé v2.5.0 avec v4.1.3 pour comprendre les différences et identifier les changements nécessaires. La modification clé consistait à utiliser des objets sans prototype pour empêcher l'exploitation.

4. Mettre en Œuvre la Solution

J'ai mis à jour la classe MemoryCookieStore pour utiliser Object.create(null) au lieu de {}, garantissant ainsi qu'aucune pollution de prototype ne se produise.

5. Tester la Solution

J'ai écrit des tests unitaires pour vérifier la correction et créé un script de démonstration de l'exploit (index.js) pour montrer comment la vulnérabilité est empêchée dans la version patchée.

6. Documenter la Correction

Enfin, j'ai documenté la correction, y compris les instructions d'installation et de test, et j'ai empaqueté la version patchée (tough-cookie-2.5.0-PATCHED.tgz) pour une distribution facile.

Résumé des Changements

Fichiers ajoutés/modifiés par rapport à v2.5.0

  • index.js : Script principal pour démontrer la vulnérabilité et la correction.
  • lib/memstore.js : La classe MemoryCookieStore modifiée pour empêcher la pollution de prototype.
  • test/ietf_data/parser.json : Mis à jour pour corriger les dates obsolètes dans les données de test.
  • test/prototype_pollution_test.js : Tests unitaires pour vérifier que la pollution de prototype est corrigée.
  • tough-cookie-2.5.0-PATCHED.tgz : La version patchée du paquet tough-cookie.
Télécharger l’outil