Analyse de la faille React2Shell (CVE-2025-55182)
- Loïc Castel
- 8 déc.
- 3 min de lecture
Une vulnérabilité critique, surnommée React2Shell, secoue actuellement l'écosystème web mondial. Elle permet à un attaquant non authentifié de prendre le contrôle total d'un serveur (RCE) via une simple requête HTTP.
Sévérité : Critique (Score CVSS : 10.0)
CVEs associées : CVE-2025-55182 (React) & CVE-2025-66478 (Next.js)
Cibles : Applications utilisant React Server Components (RSC), notamment :
Next.js 15.x et 16.x
React Router (RSC mode)
Waku
Parcel RSC (@parcel/rsc)
Vite RSC (@vitejs/plugin-rsc)
RedwoodSDK
Action requise : Patch immédiat impératif et implémentation de règles WAF (Web Application Firewall) adaptées.

Pourquoi "React2Shell" ?
Dévoilée le 3 décembre 2025, cette faille réside au cœur du protocole "Flight" de React, utilisé pour la communication entre le serveur et le client dans les architectures modernes (Server Components).
Le nom "React2Shell" vient logiquement du fait qu'un attaquant non authentifié peut passer d'une application React standard à un shell sur le serveur (utilisateur ou root, cela dépends du contexte de lancement). Contrairement à des failles complexes nécessitant des chaînes d'exploitation (chaining), ici, une seule requête malformée suffit.
Root Cause Analysis - La désérialisation en cause
Nos analystes au SOC Safercy ont décortiqué les preuves de concept (PoC) qui circulent depuis plusieurs jours. Le problème se situe dans la manière dont React désérialise les payloads envoyés aux Server Functions.
Concrètement, l'application accepte des objets sérialisés via le protocole Flight sans valider suffisamment leur type avant de les instancier.
Proof of Concept
Le vecteur d'attaque est le suivant :
L'attaquant envoie une requête POST vers un endpoint RSC .
Le corps de la requête contient un objet malveillant conçu pour déclencher l'exécution de code lors de sa reconstruction par le serveur.
Le serveur exécute le code JavaScript arbitraire (ex: child_process.execSync).

Le PoC de David Lachnan, qui a publié de manière responsable la vulnérabilité, est disponible à l'adresse suivante : https://github.com/lachlan2k/React2Shell-CVE-2025-55182-original-poc/blob/main/README.md
Patch
Un correctif a été publié sur la page Github de Facebook pour corriger la vulnérabilité : https://github.com/facebook/react/pull/35277
Ce correctif indique que la faille est une pollution de prototype côté serveur, un sous-type de pollution de prototype applicable aux composants serveur.
Dans des conditions spécifiques, cela permet à un attaquant de "polluer" le prototype d'un objet JavaScript et d'exécuter du code arbitraire en appelant des fonctions natives telles que child_process.execSync.
Ce que nous observons sur le terrain
Depuis la publication des PoC, les sondes SaferScan et nos équipes SOC ont détecté une augmentation massive des scans automatisés ciblant les ports standards (80, 443, 3000).
Nous identifions déjà des tentatives d'installation de crypto-miners et de botnets (Mirai variants) exploitant React2Shell.
Des techniques d'obfuscation (encodage Unicode, junk data padding) sont utilisées pour contourner les règles WAF statiques mises en place à la hâte ce week-end.
Actions de remédiation
Si vous utilisez Next.js ou une architecture React Server Components, vous êtes probablement vulnérable par défaut.
Voici les actions à mettre en place :
Les mainteneurs (Vercel et Meta) ont été réactifs. Mettez à jour vos dépendances immédiatement :
Next.js : Passer à la version 16.0.7+, 15.2.6+, etc.
React : Passer à la version 19.0.2+, 19.1.2+, ou 19.2.1+
Si la mise en production du correctif demande du temps, configurez votre WAF pour bloquer les requêtes contenant des motifs suspects dans les corps de requêtes tels que child_process.
Si votre application était exposée sans patch après le 4 décembre 2025, considérez le serveur comme potentiellement compromis.
Analysez les logs à la recherche de connexions sortantes suspectes.
Vérifiez l'intégrité de vos fichiers systèmes.
Faites tourner vos clés d'API et secrets d'environnement.
Conclusion
Le mot de l'expert Safercy :
"React2Shell nous rappelle que la complexité croissante des frameworks modernes (SSR, RSC) réintroduit des classes de vulnérabilités que l'on croyait maîtrisées, comme la désérialisation non sécurisée. Dans ce contexte, la sécurité en profondeur (isolation des environnements d'exécution par exemple) et la visibilité offerte par un EDR, managée par un MDR (Managed Detection and Response) n'e sont pas un luxe, c'est une nécessité vitale pour atténuer, détecter et bloquer l'exploitation avant l'exfiltration." — Loïc Castel, CTO @ Safercy
Besoin d'aide en urgence ?
Si vous suspectez une compromission ou avez besoin d'aide pour qualifier votre exposition à CVE-2025-55182, notre équipe de Réponse à Incident (CSIRT) est mobilisable immédiatement.

