Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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 — Recherche de thèse de master sur CVE-2025-55182 (React2Shell). Framework d'exploitation modulaire avec 6 scénarios d'attaque (RCE, exfiltration, défacement), shell inverse interactif, et un laboratoire vulnérable complet pour étudier la pollution de prototype et la désérialisation non sécurisée dans les composants serveur React. | Kitploit
Outils/GitHubGitHub/devianntsec/cve-2025-55182
Frameworks d'ExploitationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationTests d'IntrusionArticles et RechercheApprentissage et ÉducationOutil d'Accès à Distance
Développement de Charges Utiles
Labs et Pratique
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

Voir le dépôt
114il y a 5 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 →

À propos

Recherche de thèse de master sur CVE-2025-55182 (React2Shell). Framework d'exploitation modulaire avec 6 scénarios d'attaque (RCE, exfiltration, défacement), shell inverse interactif, et un laboratoire vulnérable complet pour étudier la pollution de prototype et la désérialisation non sécurisée dans les composants serveur React.

Partager

CVE-2025-55182 — React2Shell : Exploitation avancée et recherche de mémoire de master

Platform Language License: MIT Research CVSS

Désérialisation de données non fiables + Pollution du prototype dans les composants serveur React
Exécution de code à distance sans authentification via les actions serveur Next.js
Versions concernées : React 19.0.0 - 19.2.0 · Correctif : React 19.0.1 / 19.1.2 / 19.2.1 (3 décembre 2025)


Démonstration de l'exploit avancé – commandes RCE basiques, shell interactif et multiples vecteurs d'attaque contre une application Next.js vulnérable

Description

Ce dépôt contient mes recherches de mémoire de master sur CVE-2025-55182, une vulnérabilité critique (CVSS v3.1 : 10.0) d'exécution de code à distance dans les composants serveur React.

La vulnérabilité provient d'un mécanisme de désérialisation non sécurisé dans le protocole React Flight. Lors du traitement des actions serveur, Next.js désérialise les charges utiles multipart entrants sans validation appropriée. Un attaquant peut fabriquer une charge utile malveillante qui pollue la chaîne de prototypes et injecte du JavaScript arbitraire, exécuté sur le serveur via le constructeur Function (puis via child_process.execSync()).

Note concernant CVE-2025-66478 : Vercel a émis un CVE parallèle pour suivre l'impact spécifique à Next.js de cette même vulnérabilité. Comme Next.js regroupe React de manière internalisée, de nombreux scanners de dépendances ne le détectent pas automatiquement comme vulnérable. La base de données nationale américaine des vulnérabilités (NVD) a officiellement rejeté CVE-2025-66478 comme un doublon de CVE-2025-55182, bien qu'elle continue d'être référencée dans l'avis de sécurité de Vercel.

Vulnérabilités consécutives : L'équipe React a ensuite divulgué deux problèmes supplémentaires présents dans les premières versions de correctif (19.0.1, 19.1.2, 19.2.1) : CVE-2025-55184 (Déni de service, CVSS 7.5) et CVE-2025-55183 (Exposition de code source, CVSS 5.3). Les utilisateurs doivent mettre à niveau vers 19.0.2, 19.1.3 ou 19.2.2 pour corriger les trois.

Ma contribution

AspectDescription
Quatre modules d'attaqueSupprimer des projets, défigurer le site web, voler les variables d'environnement, arrêter les serveurs
Shell interactifShell persistant avec commandes spéciales et capacités de restauration
Exfiltration stableLecture ligne par ligne pour contourner les limitations de taille des en-têtes HTTP
Script de restaurationRestauration sécurisée du laboratoire après les attaques
Documentation académiqueCause racine, décomposition de la charge utile et chronologie de la vulnérabilité

Structure du dépôt

CVE-2025-55182/
├── README.md                        # Ce fichier
├── LICENSE                          # Licence MIT
│
├── exploit/
│   ├── exploit-explanation.md       # Documentation d'utilisation de l'exploit
│   └── react2shell.py               # Exploit principal — 4 modules d'attaque + shell interactif
│
├── vulnerable-app/                  # Application Next.js vulnérable
│   ├── README.md                    # Crédits originaux de vulnapp
│   ├── package.json                 # React 19.0.0 (vulnérable)
│   ├── app/                         # Code source de l'application
│   ├── curl_id.sh                   # Script d'exploit original (par zack0x01)
│   └── scripts/
│       └── restore.sh               # Script de restauration (ma contribution)
│
└── docs/
    ├── screenshots/                 # Démonstrations d'exploitation
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Analyse de la cause racine de la vulnérabilité
        ├── 02-payload-breakdown.md  # Structure de la charge utile et flux d'exécution
        └── 03-timeline.md           # Chronologie du CVE

Démarrage rapide

Prérequis

  • Node.js 18+ et npm
  • Python 3.9+
  • Application Next.js vulnérable (fournie dans vulnerable-app/)
  • VM isolée recommandée pour les tests

Étape 1 — Lancer l'application vulnérable

cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# Application disponible sur http://localhost:3000

Étape 2 — Exécuter l'exploit

cd ../exploit

# Vérifier si la cible est vulnérable
python3 react2shell.py -u http://localhost:3000 --check

# Exécuter une commande unique
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Mode shell interactif
python3 react2shell.py -u http://localhost:3000 -i

Modules d'attaque

ModuleCommandeDescriptionImpact
Supprimer les projets--delete-projectsSupprime tous les projets du tableau de bordDestruction de données
Défigurer--deface "message"Remplace la page principaleDéfiguration
Voler l'environnement--steal-envVole les variables d'environnementExfiltration
Arrêter les serveurs--shutdown-serversArrête tous les serveursDéni de service

Aperçu technique

Cause racine de la vulnérabilité

Les composants serveur React utilisent un mécanisme de sérialisation/désérialisation personnalisé (le protocole "Flight") pour envoyer les données des composants du serveur au client. Lors du traitement des actions serveur, le serveur désérialise les charges utiles entrantes sans validation appropriée.

Le défaut fondamental est une confiance comportementale : le désérialiseur vérifie typeof obj.then === 'function' pour identifier les promesses, sans vérifier que la propriété appartient directement à l'objet. Cela permet à un attaquant d'empoisonner Object.prototype.then, faisant apparaître chaque objet simple comme un "thenable".

Un attaquant peut fabriquer une charge utile malveillante qui :

  1. Pollue la chaîne de prototypes en utilisant __proto__:then
  2. Redirige la résolution vers le constructeur Function via $1:constructor:constructor
  3. Exécute du JavaScript arbitraire via new Function(_prefix)
  4. Exécute des commandes système via process.mainModule.require('child_process').execSync()
  5. Exfiltre la sortie via l'en-tête de réponse HTTP X-Action-Redirect
Télécharger l’outil