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-2025-55182 — Analyse basée sur CodeQL de la vulnérabilité de prototype pollution CVE-2025-55182 dans React Server Components, avec un POC d'exploitation et des requêtes de détection statique pour le parcours non sécurisé de propriétés. | Kitploit
Outils/GitHubGitHub/klassiker/cve-2025-55182
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeSécurité WebArticles et RechercheApprentissage et Éducation
GitHubklassiker/cve-2025-55182

CVE-2025-55182

Analyse basée sur CodeQL de la vulnérabilité de prototype pollution CVE-2025-55182 dans React Server Components, avec un POC d'exploitation et des requêtes de détection statique pour le parcours non sécurisé de propriétés.

Voir le dépôt
il y a 8 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-2025-55182

Application vulnérable

Construire et exécuter :

root@kitploit:~
docker compose build
docker compose run --rm --entrypoint 'npm install' node
docker compose run --rm --entrypoint 'npm run build' node
docker compose up

POC (depuis https://github.com/msanft/CVE-2025-55182) :

root@kitploit:~
node poc.js

Expérimentation avec unbundled :

root@kitploit:~
yarn --immutable

node --conditions react-server app.js

CodeQL

Cloner facebook/react et créer unbundled :

root@kitploit:~
yarn --immutable

yarn cross-env RELEASE_CHANNEL=experimental node ./scripts/rollup/build.js react-server-dom-webpack/ --type=NODE_DEV

cp ./build/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js \
    codeql/${version}/

Préparer CodeQL :

root@kitploit:~
codeql database create db -l javascript -s codeql

cd queries && codeql pack install

codeql query run ./queries/PrototypeTraversal.ql -d db

TODO

  • Ajouter une requête pour trouver Promise.resolve(userData)
    • devrait trouver toutes les fonctions async qui se résolvent avec un objet défini par l'utilisateur
    • c'est l'emplacement immédiat des problèmes d'exécution de code
  • Ajouter une requête pour trouver await non-native-promise
    • devrait trouver tous les await de fonctions qui ne retournent pas une promesse native
    • un appelant pourrait utiliser par erreur await sur une méthode qui retourne (parfois) des données brutes

Résultats

Il a détecté l'utilisation corrigée dans getOutlinedModel (ajout de hasOwnProperty.call) et celle supprimée dans createModelResolver (maintenant fulfillReference).

Je ne sais pas pourquoi le premier et le second pointent vers le même emplacement, alors que celui extrait dans vuln.js ne le fait pas.

Exemples

Dans codeql/tests.js il y a ces trois variantes :

root@kitploit:~
var value = {};
for (let i = 0; i < path.length; i++) {
  value = value[path[i]] // VarAccess
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c = value[path[i]] // VarDecl
  value = c
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c
  c = value[path[i]] // use VarRef
  value = c
}

Référence : https://codeql.github.com/docs/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs/

Télécharger l’outil
filenamesourcesink
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Parcours de prototype non sécurisé : la variable 'parentObject' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Parcours de prototype non sécurisé : la variable 'parentObject' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsvalue[path[i]]value[path[i]]Parcours de prototype non sécurisé : la variable 'value' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./tests.jsvalue[path[i]]cParcours de prototype non sécurisé : la variable 'value' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./tests.jsvalue[path[i]]cParcours de prototype non sécurisé : la variable 'value' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./tests.jsvalue[path[i]]value[path[i]]Parcours de prototype non sécurisé : la variable 'value' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./vuln.jsparentObject[reference[key]]parentObject[reference[key]]Parcours de prototype non sécurisé : la variable 'parentObject' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.
./vuln.jsvalue[path[i]]value[path[i]]Parcours de prototype non sécurisé : la variable 'value' est mise à jour avec sa propre propriété à l'intérieur d'une boucle.