Méta description : React2Shell (CVE-2025-55182) est un RCE pré-authentification critique qui affecte React Server Components et Next.js - des correctifs immédiats, des configurations renforcées, des défenses en périphérie et une détection d'exécution sont essentiels. Ce guide fournit le contexte de la menace, des correctifs sûrs pour le code et les CI, et des stratégies de défense en profondeur pour sécuriser les applications web modernes.
Qu'est-ce que React2Shell - et pourquoi tout le monde en parle ?
Au début du mois de décembre 2025, une vulnérabilité critique baptisée React2Shell - répertoriée sous le nom de CVE-2025-55182 (et alias CVE-2025-66478 pour Next.js) - a été divulguée publiquement. La faille réside dans la manière dont le protocole "Flight" des React Server Components (RSC) désérialise les charges utiles entrantes. Un attaquant peut créer une requête malveillante et déclencher une désérialisation non sécurisée sur le serveur, conduisant à exécution de code à distance non authentifiée (RCE). censys.com+2Sysdig+2
La gravité est évaluée CVSS 10.0 (maximum). NetSPI+1 Ce qui rend cette situation particulièrement dangereuse, c'est que de nombreux déploiements par défaut de frameworks comme Next.js (avec le support RSC) deviennent exploitables - même si le développeur n'a pas écrit de point de terminaison de fonction serveur personnalisé. Insight Egnworks+2blog.tecnetone.com+2
Peu de temps après la divulgation, de nombreuses équipes de renseignement sur les menaces et des fournisseurs de services en nuage (AWS, GreyNoise, chercheurs en sécurité) ont signalé que l'exploitation active dans la nature - y compris des analyses opportunistes, des tentatives d'exploitation et quelques intrusions confirmées attribuées à des groupes liés à l'État. TechRadar+3Amazon Web Services, Inc.+3greynoise.io+3
En résumé : React2Shell n'est pas théorique - c'est réel, critique et actuel.

Qui est concerné - et qui pourrait se croire à l'abri (mais ne l'est pas) ?
| Paquet / Cadre | Versions vulnérables | Versions corrigées / sûres (à partir de décembre 2025) |
|---|---|---|
| react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack (RSC core) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 (react2shell.info) | ≥ 19.0.1, 19.1.2, 19.2.1 (react2shell.info) |
| Next.js (avec App Router / RSC activé) | 15.x, 16.x ; certain canary 14.x-14.3.0-canary.77+ (react2shell.info) | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 (ou version stable ultérieure) (react2shell.info) |
Mise en garde importante : Même si votre application pas définissent des "endpoints de fonction serveur" explicites, et même si vous pensez n'utiliser React que pour le rendu côté client, vous pouvez toujours être en danger - parce que React RSC peut être regroupé via des dépendances, ou l'échafaudage par défaut peut inclure du code capable de RSC. unsafe.sh+1
D'où auditer avec soin - ne pas supposer que "nous sommes en sécurité parce que nous n'avons pas écrit le code du serveur".
Ce que les attaquants font en ce moment même - Real Threats
- A l'intérieur heures de divulgationLes campagnes de balayage de l'internet ont commencé. greynoise.io+2cyble.com+2
- Certains Groupes APT liés à l'État chinois aurait ciblé des hôtes vulnérables à React2Shell pour un accès initial, puis aurait déployé des mineurs, volé des informations d'identification ou établi une persistance. Amazon Web Services, Inc.+2SOC Prime+2
- Les entreprises de sécurité et les équipes de réponse aux incidents ont observé une exploitation réussie contre des applications Next.js "vanille" (échafaudées par l'intermédiaire de
Créer la prochaine application), ce qui signifie que la configuration par défaut n'est pas une garantie de sécurité. blog.tecnetone.com+2byteiota | From Bits to Bytes+2
Un rapport communautaire se démarque :
"Mon serveur NextJS a été compromis par l'exploitation de React2Shell ... notification d'abus DDoS, 5 familles distinctes de logiciels malveillants déployées, crypto-miner dropper." Reddit
Compte tenu de l'ampleur et de l'agressivité de l'automatisation des attaques, une réponse tardive ou superficielle peut conduire à de graves compromissions.
Patch immédiat - Utilisation de fix-react2shell-next
La première ligne de défense la plus rapide consiste à patcher les dépendances et reconstruire. Le paquet fix-react2shell-next automatise la détection des versions vulnérables à travers monorepos et les met à jour. CVE-2025-55182 Scanner+1
Exemple de commande de mise à niveau :
bash
npx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7
Puis reconstruire et redéployer, en s'assurant qu'il ne reste plus d'anciens lockfiles ou de paquets mis en cache.
Flux de travail recommandé (CI/CD sûr) :
- Ajouter une étape SBOM ou de vérification des dépendances au pipeline.
- Bloquer les fusions/constructions si un paquet RSC vulnérable subsiste.
- Vider les caches et reconstruire l'ensemble de l'artefact avant le déploiement.
Cela garantit que vos artefacts de déploiement ne contiennent plus de code vulnérable, même de manière transitoire.
La défense en profondeur : WAF, durcissement des requêtes et détection du temps d'exécution
Les correctifs éliminent le bogue à la source, mais une sécurité solide exige des défenses superposées - en cas de mauvaise configuration future, de dépendances inconnues ou de variantes de type "zero-day". Basé sur des recherches publiques (par exemple de Sysdig, Wiz, et des vendeurs utilisant des protections Cloud-Native) Sysdig+2research.jfrog.com+2Nous recommandons ce qui suit :
Protections au niveau de la périphérie / WAF
Configurer ou déployer des règles WAF pour bloquer les POST suspects vers les points de terminaison RSC (par ex. /_suivant, /_rscou des routes de fonction serveur), en particulier si la taille du corps de la requête ou le type de contenu est inhabituel (par exemple, des charges utiles binaires). De nombreux fournisseurs de WAF ont déjà mis en place des signatures React2Shell. Sysdig+1
Demande d'assainissement / limites de taille des corps
Si votre application inclut des points d'extrémité de serveur personnalisés, appliquez des limites de taille de corps, restreignez les types de contenu et rejetez explicitement les charges utiles inattendues. Par exemple (style Node/Express) :
js
import { json, urlencoded } from 'body-parser' ; app.use(json({ limit : '10kb' })) ; app.use(urlencoded({ extended : false, limit : '10kb' })) ; app.use('/api/rsc', (req, res, next) => {if ( !['application/json', 'application/octet-stream'].includes(req.headers['content-type'])) {return res.status(415).end() ; }next() ; }) ;
Cela réduit le risque que des charges utiles malformées ou malveillantes déclenchent la logique de désérialisation encore complexe - ce qui permet de gagner du temps jusqu'à la mise en place d'un correctif complet.
Détection / surveillance / alertes sur l'apparition de processus en cours d'exécution
Étant donné que le comportement post-exploitation implique souvent la création d'un shell (par exemple, des mineurs, des shells inversés), l'ajout d'une détection au moment de l'exécution (via des outils comme Falco, des agents de sécurité au moment de l'exécution, EDR) permet de détecter les invocations child_process inhabituelles ou les connexions sortantes. Les chercheurs de Sysdig ont déjà publié des règles de détection pour les schémas d'exploitation de React2Shell. Sysdig
Exemple de durcissement : Du correctif au déploiement sécurisé (code + configuration)
bash
`# 1. Patch dependenciesnpx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7
Environnement de construction propre
rm -rf node_modules .next package-lock.json npm install npm run build

Ajouter le SBOM / l'analyse des dépendances à l'IC
GitHub Actions snippet`
yaml
name : Prevent React2Shell Exposure on : [pull_request, push]jobs : dependency-check : runs-on : ubuntu-latest steps : - uses : actions/checkout@v4 - run : npm ci - name : Block RSC packages run : | npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack || true npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack | grep -E "@(19\\.[0|1])\." && (echo "Vulnerable RSC found" && exit 1)
Intégrez également des limites de taille de corps et un filtrage du type de contenu dans le code de votre serveur, comme indiqué ci-dessus, et déployez un agent de surveillance en cours d'exécution ou un EDR en nuage pour détecter les comportements suspects après le déploiement.
Données du monde réel : Impact, exploitation et pourquoi les retards sont dangereux
- D'après les données télémétriques rendues publiques, plus de 77 000 adresses IP exposées à l'internet restent potentiellement vulnérables. blog.tecnetone.com+1
- Dans les heures qui ont suivi la divulgation, les attaquants ont commencé à scanner en masse et à exploiter les systèmes non corrigés, y compris les tentatives des groupes APT. Amazon Web Services, Inc.+2SOC Prime+2
- Des codes de démonstration de concept (PoC) ont commencé à circuler et certains hôtes non corrigés ont été victimes de compromissions totales : droppers de logiciels malveillants, crypto-miners et exfiltration d'informations d'identification. Reddit+1
Un utilisateur de Reddit a écrit :
"Mon serveur NextJS a été compromis par React2Shell ... plusieurs familles de logiciels malveillants, crypto-miner, vol d'informations d'identification". Reddit
Il ne s'agit plus d'une question de "patch à la convenance" - il s'agit d'une question de "patch à la convenance". urgent.
Où Penligent.ai S'intègre dans - les tests automatisés, l'assurance continue et la protection contre les régressions
Pour les équipes qui utilisent ou créent des outils de test de sécurité ou de test de pénétration (en particulier automatisés ou pilotés par l'IA), React2Shell illustre une leçon essentielle : les vulnérabilités basées sur les dépendances + les risques de désérialisation + les configurations par défaut créent une surface d'attaque massive.
Avec Penligent.aivous obtenez :
- Analyse automatisée des dépendances et analyse SBOM - identifier les paquets RSC vulnérables (react-server-dom-*) ou les versions non corrigées de Next.js dans plusieurs dépôts à la fois.
- Simulation automatisée d'exploitation (bac à sable sécurisé) - L'émulation en bac à sable de Penligent permet de générer des requêtes RSC malformées (non destructives), de tester la réponse du serveur et de détecter des comportements de désérialisation risqués - sans utiliser de PoCs publics.
- Intégration CI/CD pour les alertes de régression - si une nouvelle demande d'extraction réintroduit un paquet vulnérable ou désactive un intergiciel de renforcement de la sécurité, Penligent.ai déclenche des alertes avant la fusion.
- Crochets de surveillance en cours d'exécution - intégrer des agents légers ou une logique d'alerte pour détecter la création de processus, les connexions sortantes suspectes ou d'autres comportements anormaux (par exemple, cryptomining, appels C2).
En bref, l'utilisation de Penligent.ai transforme une réparation ponctuelle en une une posture de sécurité continueLe système de gestion de l'information est un outil qui permet de réduire les risques même si le code change, si les dépendances évoluent ou si une erreur humaine se glisse dans le système.
Liste de contrôle des meilleures pratiques et recommandations sur le durcissement après l'application des correctifs
- Corrections immédiates de tous les paquets RSC et Next.js - n'attendez pas le "prochain sprint".
- Nettoyer et reconstruire les artefacts - ne comptez pas sur les versions mises en cache.
- Audit des dépendances et des fichiers de verrouillage - inclure des dépendances transitives.
- Ajouter des contrôles CI/CD ou l'application du SBOM - fusionner avec les paquets vulnérables.
- Utiliser un WAF ou un filtrage au niveau de la périphérie - bloquer ou contester les POST suspects du protocole de vol.
- Assainir les entrées des requêtes - appliquer les limites de taille de corps, la liste blanche de type de contenu, la validation du schéma JSON lorsque c'est possible.
- Déployer la détection et la surveillance en cours d'exécution - attraper la création de processus, les fichiers inhabituels ou l'activité du réseau.
- Enregistrer, surveiller et alerter - maintenir des pistes d'audit pour les connexions, les déploiements et les comportements inhabituels.
- Traiter les modifications du cadre comme des éléments critiques pour la sécurité - même les paquets orientés navigateur comme React peuvent avoir un impact sur la sécurité du serveur lorsque RSC est impliqué.
- Utiliser des outils de sécurité automatisés (par ex. Penligent.ai) - pour l'analyse des dépendances, la détection de la régression, la simulation d'exploits en bac à sable et l'assurance qualité en matière de sécurité.
Réflexions finales
React2Shell (CVE-2025-55182 / 66478) est un événement décisif pour la sécurité des applications web modernes. Il démontre que les grands frameworks - même ceux qui sont principalement associés au rendu de l'interface utilisateur - peuvent comporter des failles de sécurité dévastatrices côté serveur. Pour les développeurs, les équipes DevOps et les équipes de sécurité, il s'agit d'un événement majeur. zero-day qui a déjà été mis en œuvre dans des milliers de déploiements.
L'application de correctifs aux versions dépendantes n'est que la première étape, la plus urgente. Une posture vraiment sûre nécessite des défenses en couches : durcissement, assainissement des entrées, surveillance de l'exécution, WAF ou filtres de périphérie, audit de la chaîne d'approvisionnement et tests de sécurité continus.
Si vous créez, maintenez ou vérifiez des applications web, ou si vous développez des outils de sécurité, il est temps d'agir avant que les attaquants n'arrivent. Avec des outils tels que Penligent.aivous pouvez passer de l'étape de la "perforation" à l'étape de la "réparation". assurance de la sécurité structurée, continue et automatisée - et vous pourrez dormir sur vos deux oreilles en sachant que votre application est résistante à React2Shell et aux futures menaces de désérialisation.

