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
CVE-2026-21717 — Preuve de concept pour CVE-2026-21717, une vulnérabilité de collision de hachage de chaînes V8 dans Node.js provoquant un déni de service via des charges utiles JSON spécialement conçues. | Kitploit
Outils/GitHubGitHub/open-flaw/cve-2026-21717
Analyse des VulnérabilitésExploitationApprentissage et Éducation
GitHubopen-flaw/cve-2026-21717

CVE-2026-21717

Preuve de concept pour CVE-2026-21717, une vulnérabilité de collision de hachage de chaînes V8 dans Node.js provoquant un déni de service via des charges utiles JSON spécialement conçues.

Voir le dépôt
il y a 4 moisPas 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

CVE-2026-21717

Vulnérabilité de collision prévisible du hachage de chaînes V8 de Node.js conduisant à un déni de service

Vue d'ensemble

Une vulnérabilité critique dans le mécanisme de hachage de chaînes de V8 permet aux attaquants de provoquer une grave dégradation des performances dans les applications Node.js. Les chaînes de type entier sont hachées selon leur valeur numérique, ce qui rend les collisions de hachage trivialement prévisibles. En concevant une entrée malveillante qui provoque de nombreuses collisions dans la table de chaînes interne de V8, un attaquant peut considérablement dégrader les performances ou provoquer un déni de service.

Détails de la vulnérabilité

  • Identifiant CVE : CVE-2026-21717
  • Gravité : Élevée
  • Vecteur d'attaque : Réseau
  • Complexité de l'attaque : Faible
  • Impact : Déni de service (DoS)

Description technique

La vulnérabilité provient du processus d'internalisation des chaînes de V8. Lors de l'analyse JSON, les chaînes courtes sont automatiquement internalisées dans une table de hachage. Les chaînes de type entier entrent en collision de manière prévisible car elles sont hachées selon leur valeur numérique, ce qui permet aux attaquants de forcer des chaînes de sondage quadratique qui dégradent gravement les performances.

Composants concernés

Le déclencheur le plus courant est tout point de terminaison qui appelle JSON.parse() sur une entrée contrôlée par l'attaquant, car l'analyse JSON internalise automatiquement les chaînes courtes dans la table de hachage concernée.

Preuve de concept

Ce dépôt contient une preuve de concept démontrant la vulnérabilité :

Prérequis

root@kitploit:~
# Utilisez une version de Node.js affectée par CVE-2026-21717
nvm use
npm install

Exécution de la PoC

root@kitploit:~
node poc.js

Comportement attendu

La PoC crée une charge utile avec :

  • Une chaîne de sondage quadratique d'environ 130 000 chaînes
  • Des valeurs cibles répétées forçant des recherches à travers la chaîne
  • Résulte en environ 44 secondes ou plus de temps CPU pour une seule opération JSON.parse()

Flux d'attaque

  1. Attaquant conçoit une charge utile JSON contradictoire contenant des chaînes de type entier conçues pour entrer en collision
  2. Client envoie le JSON malveillant au serveur
  3. Serveur appelle JSON.parse() sur l'entrée non fiable
  4. Moteur V8 internalise les chaînes dans la table de hachage, déclenchant des collisions
  5. Résultat Consommation CPU extrême et dégradation des performances

Atténuation

Actions recommandées

  1. Mettre à jour Node.js vers une version corrigée qui traite cette vulnérabilité
  2. Validation des entrées : Limitez la taille et la complexité des charges utiles JSON
  3. Limitation du débit : Mettez en œuvre une limitation du débit sur les points de terminaison acceptant des entrées JSON
  4. Délais d'expiration : Définissez des délais d'expiration raisonnables pour les opérations d'analyse JSON
  5. Surveillance des ressources : Surveillez l'utilisation du CPU pour détecter des pics anormaux

Atténuations au niveau du code

root@kitploit:~
// Limiter la taille de la charge utile
app.use(express.json({ limit: '100kb' }));

// Ajouter un délai d'expiration pour l'analyse
const parseWithTimeout = (str, timeout = 1000) => {
  return Promise.race([
    Promise.resolve(JSON.parse(str)),
    new Promise((_, reject) => 
      setTimeout(() => reject(new Error('Parse timeout')), timeout)
    )
  ]);
};

Références

  • Détails CVE
  • Blog de sécurité Node.js

Avertissement

Ce dépôt est destiné uniquement à des fins éducatives et de recherche. N'utilisez pas ce code à des fins malveillantes ou contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.

Télécharger l’outil