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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-55182-React-Server-Components-Flight-React2Shell- — Avis et analyse de CVE-2025-55182 (React2Shell), RCE par désérialisation RSC Flight, avec décomposition de la cause racine, déroulement de l'attaque, diff du correctif et règles de détection Sigma/Suricata/WAF. | Kitploit
Outils/GitHubGitHub/certbn/cve-2025-55182-react-server-components-flight-react2shell-
Gestion des Indicateurs de Compromission (IOC)Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebRenseignement sur les MenacesArticles et RechercheRéponse aux Incidents

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 →
GitHubcertbn/cve-2025-55182-react-server-components-flight-react2shell-

CVE-2025-55182-React-Server-Components-Flight-React2Shell-

Avis et analyse de CVE-2025-55182 (React2Shell), RCE par désérialisation RSC Flight, avec décomposition de la cause racine, déroulement de l'attaque, diff du correctif et règles de détection Sigma/Suricata/WAF.

Voir le dépôt
1il y a 2 joursPas encore vérifié
Partager

CVE-2025-55182 : Exécution de code à distance par désérialisation du protocole Flight des React Server Components (React2Shell)

CVSS Type KEV Ransomware

Date de dernière vérification : 2026-11-04 (KST). Chaque valeur chiffrée ne provient que des sources citées dans les References ci-dessous ; lorsque les valeurs diffèrent entre les sources, toutes sont indiquées.

📌 TL;DR

  • Quoi : lors du processus de désérialisation (deserialization) du protocole Flight des React Server Components (RSC), le nom de propriété du chemin de référence n'est pas validé, ce qui permet à un attaquant de remonter la chaîne de prototypes (prototype chain) jusqu'au constructeur Function et d'exécuter du JavaScript arbitraire.
  • Où : react-server-dom-webpack / -parcel / -turbopack 19.0.0, 19.1.0, 19.1.1, 19.2.0 et les frameworks qui les utilisent — notamment Next.js 15.x / 16.x App Router. Même sans définir directement de Server Function, il suffit de prendre en charge RSC pour être affecté.
  • Quel est le niveau de risque : RCE sans authentification en une seule requête HTTP (CVSS 10.0). Quelques heures seulement après la divulgation publique, un groupe lié à la Chine a commencé à l'exploiter, et le statut est inscrit au CISA KEV et à l'exploitation par rançongiciel « Known ».

📋 Informations de base

ÉlémentContenu
ID CVECVE-2025-55182 (React) / CVE-2025-66478 pour Next.js a été rejeté comme doublon (Rejected)
AliasReact2Shell
Date de publication2025-12-03 (avis de l'équipe React, correctif déployé le même jour)
DécouvreurLachlan Davidson (signalé le 2025-11-29 via le Meta Bug Bounty)
Produits/versions affectésreact-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack 19.0.0, 19.1.0, 19.1.1, 19.2.0 / Next.js canary 14.3.0-canary.77 et supérieur, 15.x, 16.x (App Router)
Versions corrigéesCorrectif RCE : React 19.0.1 / 19.1.2 / 19.2.1, Next.js 15.0.5 / 15.1.9 / 15.2.6 / 15.3.6 / 15.4.8 / 15.5.7 / 16.0.7
Versions finales recommandées (incluant les vulnérabilités ultérieures) : React 19.0.3 / 19.1.4 / 19.2.3 (voir « Vulnérabilités ultérieures » ci-dessous)
CVSS v3.110.0 Critique — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0Non confirmé auprès des sources primaires à la date de rédaction de ce document
CWECWE-502 Deserialization of Untrusted Data (Vercel GHSA-9qr9-h5gf-34mp, GitLab Advisory DB). CWE non renseigné dans l'entrée CISA KEV
Exploitation réelleExploitation confirmée. Inscription au CISA KEV le 2025-12-05, échéance d'action pour les agences fédérales le 2025-12-12, utilisation dans des campagnes de rançongiciels : Known. AWS a observé des tentatives d'exploitation dans les heures suivant la publication

Détail de la portée d'impact

ComposantVersions affectéesVersions corrigées
react-server-dom-webpack / -parcel / -turbopack19.0.019.0.1 (19.0.3 recommandé)
〃19.1.0, 19.1.119.1.2 (19.1.4 recommandé)
〃19.2.019.2.1 (19.2.3 recommandé)
Next.js 15.x (App Router)15.0 ~ avant correctif 15.515.0.5 / 15.1.9 / 15.2.6 / 15.3.6 / 15.4.8 / 15.5.7
Next.js 16.x (App Router)antérieur à 16.0.716.0.7
Next.js canary14.3.0-canary.77 et supérieur15.6.0-canary.58 / 16.1.0-canary.12 (les utilisateurs de 14.3 canary doivent rétrograder vers 14.x stable)
Autres outils d'intégration RSCReact Router (unstable RSC API), Waku, plugin RSC Parcel, plugin RSC Vite (@vitejs/plugin-rsc), RedwoodSDK, Expo, etc.Dernière version de chaque outil + react-server-dom-* corrigé

Non affecté : applications React purement côté client sans serveur, Next.js 13.x / 14.x stable, applications Pages Router, déploiements sur Edge Runtime.

Vulnérabilités ultérieures (attention lors de la détermination de la version corrigée)

Après le correctif de React2Shell, des recherches supplémentaires sur RSC ont conduit à la divulgation successive de vulnérabilités qui ne sont pas des RCE. Le RCE lui-même a été corrigé dans 19.0.1 / 19.1.2 / 19.2.1, mais pour bloquer également les vulnérabilités ci-dessous, la dernière version est nécessaire.

CVETypeCVSS v3.1PublicationVersion corrigée
CVE-2025-55184Déni de service (DoS)7.52025-12-1119.0.2 / 19.1.3 / 19.2.2 (incomplet)
CVE-2025-55183Exposition du code source5.32025-12-1119.0.2 / 19.1.3 / 19.2.2
CVE-2025-67779DoS dû à un correctif incomplet de CVE-2025-551847.52025-12-1219.0.3 / 19.1.4 / 19.2.3

Certains articles d'éditeurs de sécurité (par exemple la mise à jour de Zscaler) indiquent que « le correctif initial de CVE-2025-55182 était incomplet ». Cependant, selon les avis de React et de GitLab, ce qui était incomplet concerne le correctif du DoS (CVE-2025-55184), et nous n'avons pas pu confirmer de source primaire indiquant que le correctif de la RCE avait été contourné. Dans un cas comme dans l'autre, la mesure recommandée est d'utiliser au minimum 19.0.3 / 19.1.4 / 19.2.3.

Dates clés

DateÉvénement
2025-11-29Signalement par Lachlan Davidson via le Meta Bug Bounty
2025-11-30Confirmation par les chercheurs en sécurité de Meta, début des correctifs avec l'équipe React
2025-12-03Publication de l'avis et du correctif React (19.0.1 / 19.1.2 / 19.2.1) et de l'avis Next.js (CVE-2025-66478). Les fournisseurs cloud et WAF, prévenus à l'avance, déploient des règles de protection
2025-12-03 ~ 04AWS observe, dans les heures suivant la publication, des tentatives d'exploitation par des groupes liés à la Chine (Earth Lamia, Jackpot Panda). Zscaler observe plus de 4 100 tentatives d'exploitation durant les 2 premières heures
2025-12-05Ajout au catalogue CISA KEV (échéance 12-12). Microsoft détecte à partir de ce jour une activité d'exploitation réelle
2025-12-11Publication des vulnérabilités ultérieures CVE-2025-55184 / 55183
2025-12-12Publication de CVE-2025-67779 (correctif incomplet), déploiement de 19.0.3 / 19.1.4 / 19.2.3
2025-12-15Publication par Microsoft de l'analyse post-exploitation et du guide de chasse

🔍 Analyse de la cause racine (Root Cause)

1. Contexte : le protocole Flight et les chunks

RSC échange les données entre client et serveur via un protocole de sérialisation propre appelé Flight. Lorsqu'un client appelle une Server Function, le navigateur envoie les arguments dans une requête POST multipart/form-data, et chaque champ de formulaire devient un chunk numéroté.

  • Le type est exprimé par un préfixe de chaîne. Par exemple : $<id> référence la valeur d'un autre chunk, $@<id> référence l'objet chunk lui-même, $B<id> désigne un traitement Blob.
  • Un chunk est un objet thenable possédant une méthode then(). En JavaScript, await appelle then() lorsqu'il rencontre un thenable, et si le résultat est lui-même un thenable, il continue à l'appeler récursivement.

2. Le quoi : une traversée de propriétés non validée dans getOutlinedModel()

Le gestionnaire de réponse Flight côté serveur (packages/react-server/src/ReactFlightReplyServer.js), dans getOutlinedModel(), découpe une référence de la forme $<id>:<prop1>:<prop2> selon le séparateur :, puis suit les propriétés du chunk cible dans l'ordre chunk[prop1][prop2].

Télécharger l’outil