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-2.5.0-cve-2023-26136-fix — Correctif de sécurité pour CVE-2023-26136 dans tough-cookie 2.5.0 - Correction de vulnérabilité de pollution du prototype avec rétrocompatibilité | Kitploit
Outils/GitHubGitHub/uriyahav/tough-cookie-2.5.0-cve-2023-26136-fix
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeSécurité WebArticles et RechercheApprentissage et Éducation
GitHuburiyahav/tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie-2.5.0-cve-2023-26136-fix

Correctif de sécurité pour CVE-2023-26136 dans tough-cookie 2.5.0 - Correction de vulnérabilité de pollution du prototype avec rétrocompatibilité

Voir le dépôt
3il y a 1 anPas encore vérifié

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 →
Partager

Correction de CVE-2023-26136 pour tough-cookie 2.5.0

Aperçu de la mission

Ce projet corrige CVE-2023-26136, une vulnérabilité critique de pollution de prototype dans les versions de tough-cookie antérieures à 4.1.3. La vulnérabilité affecte l'application web de Penguin Software Inc., qui utilise [email protected] pour le traitement des cookies.

Description de la vulnérabilité

CVE-2023-26136 est une vulnérabilité de pollution de prototype qui se produit lorsque CookieJar est utilisé avec rejectPublicSuffixes=false. Le problème provient d'une initialisation incorrecte des objets dans la classe MemoryCookieStore, permettant à des attaquants d'injecter des propriétés dans Object.prototype via des domaines de cookies malveillants.

Détails techniques

La vulnérabilité existe dans lib/memstore.js où les cookies sont stockés à l'aide d'objets JavaScript simples ({}). Comme ces objets héritent de Object.prototype, les attaquants peuvent exploiter cela en définissant des cookies avec des domaines comme __proto__, constructor ou prototype, entraînant une pollution de prototype.

Solution

Implémentation du correctif

Le correctif remplace toutes les occurrences de {} par Object.create(null) dans la classe MemoryCookieStore :

root@kitploit:~
// Before (vulnerable)
this.idx = {};

// After (fixed)
this.idx = Object.create(null);

Ce changement empêche la pollution de prototype en créant des objets sans chaîne de prototype, isolant efficacement le stockage des cookies des héritages non intentionnels.

Fichiers modifiés

  • lib/memstore.js : Mise à jour de l'initialisation des objets pour utiliser Object.create(null)

Structure du projet

root@kitploit:~
├── README.md                    # This file
├── changes.diff                 # Git-compatible diff file
├── test-cve-2023-26136.js      # Unit test for the fix
├── tough-cookie/
│   ├── index.js                 # Exploit demonstration
│   ├── Original v2.5.0/         # Original vulnerable version
│   ├── v2.5.0-PATCHED/          # Patched version
│   │   └── tough-cookie-2.5.0.tgz  # Packed version
│   └── package.json
└── mission.txt                  # Original mission requirements

Installation et test

1. Version empaquetée (.tgz)

La version corrigée est disponible sous forme de tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz.

Pour installer :

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

2. Exécution de la suite de tests

La suite de tests originale de tough-cookie devrait réussir. Pour exécuter les tests :

root@kitploit:~
cd tough-cookie/v2.5.0-PATCHED
npm install
npm test

Note : La version originale tough-cookie 2.5.0 n'inclut pas de répertoire de test dans cette distribution, mais la version corrigée maintient une compatibilité totale avec l'API d'origine.

3. Test unitaire pour la correction de la vulnérabilité

Exécutez le test unitaire personnalisé pour vérifier le correctif :

root@kitploit:~
node test-cve-2023-26136.js

Sortie attendue :

root@kitploit:~
Testing CVE-2023-26136 fix...
✅ Correction de CVE-2023-26136 vérifiée : Aucune pollution de prototype détectée
✅ Test réussi : La vulnérabilité a été corrigée avec succès

4. Démonstration de l'exploit

Le projet inclut une démonstration de l'exploit dans tough-cookie/index.js :

root@kitploit:~
cd tough-cookie
node index.js

Cela testera à la fois la version vulnérable originale et la version corrigée, montrant :

  • EXPLOITED SUCCESSFULLY pour la version originale
  • EXPLOIT FAILED pour la version corrigée

Documentation des modifications

changes.diff

Le fichier changes.diff contient un diff compatible git qui peut être appliqué en utilisant :

root@kitploit:~
git apply changes.diff

Ce diff n'inclut que les changements nécessaires pour corriger la vulnérabilité sans modifications non intentionnelles.

Détails de l'exploit

L'exploit fonctionne en :

  1. Création d'un CookieJar avec rejectPublicSuffixes: false
  2. Définition d'un cookie malveillant avec le domaine __proto__
  3. Cela pollue la chaîne Object.prototype
  4. Les nouveaux objets héritent des propriétés polluées

Dommages potentiels :

  • Manipulation du comportement de l'application
  • Contournement de sécurité
  • Déni de service
  • Corruption de données

Compatibilité Node.js

✅ Testé et vérifié sur Node.js 20 (LTS)

Informations sur le dépôt

Dépôt GitHub : Dépôt tough-cookie forké

Git Tag : v2.5.0-patched-cve-2023-26136-fix

Expérience CI/CD

Outils d'intégration continue utilisés :

  1. GitHub Actions - Niveau expert

    • Tests automatisés et déploiement
    • Analyse de sécurité et gestion des dépendances
    • Tests multi-plateformes
  2. Jenkins - Niveau avancé

    • Développement et maintenance de pipelines
    • Conteneurisation Docker
    • Intégration avec divers outils
  3. Travis CI - Niveau intermédiaire

    • Automatisation de builds
    • Exécution de tests
    • Workflows de déploiement
  4. CircleCI - Niveau intermédiaire

    • Configuration de pipelines CI/CD
    • Support Docker
    • Exécution parallèle de jobs
  5. GitLab CI/CD - Niveau avancé

    • Développement de pipelines
    • Déploiement Kubernetes
    • Intégration d'analyse de sécurité

Outils supplémentaires :

  • Docker - Niveau expert (conteneurisation et orchestration)
  • Kubernetes - Niveau avancé (déploiement et mise à l'échelle)
  • SonarQube - Niveau intermédiaire (analyse de qualité de code)
  • Snyk - Niveau intermédiaire (analyse de vulnérabilités de sécurité)

Références

  • CVE-2023-26136 - NVD
  • Dépôt GitHub de tough-cookie
  • Guide de sécurité sur la pollution de prototype

Licence

Ce projet conserve la licence originale de tough-cookie (BSD-3-Clause) tout en ajoutant le correctif de sécurité.


Note : Il s'agit d'un correctif axé sur la sécurité qui maintient une compatibilité ascendante complète tout en éliminant la vulnérabilité CVE-2023-26136.

Télécharger l’outil