CVE-2025-55182 et CVE-2025-66478 (« React2Shell ») : tout ce que vous devez savoir – MISE À JOUR

Vulnérabilité React2Shell CVE-2025-55182 dans les composants serveur React

MISE À JOUR IMPORTANTE: React2Shell continue d’attaquer l’infrastructure cloud 

(9 décembre 2025) L’équipe de recherche en sécurité de JFrog continue de suivre la vulnérabilité React2Shell. Les développements récents incluent le POC original du chercheur qui a découvert cette vulnérabilité. Ce POC démontre la simplicité de l’exploitation de cette CVE et reflète la gravité et l’impact réels de cette CVE.

(12 décembre 2025) Deux vulnérabilités de déni de service de gravité élevée – CVE-2025-55184 et CVE-2025-67779 – ont été publiées. Les CVE partagent les mêmes scénarios d’utilisation que React2Shell, mais ne peuvent faire l’objet d’une exploitation de code à distance.
Ces vulnérabilités impactent à la fois React et Next.js, et de nouvelles versions ont été publiées pour corriger le problème.

JFrog continue de suivre React2Shell et de fournir des mises à jour à son sujet sur research.jfrog.com.


Que s’est-il passé ?

Une vulnérabilité critique dans React — CVE-2025-55182 (et la CVE-2025-66478 correspondante dans Next.js) — a été publiée par les responsables de la maintenance de React. La vulnérabilité a été nommée « React2Shell » par le chercheur à l’origine de sa découverte, car elle permet à des attaquants distants (potentiellement non authentifiés) d’exécuter du code arbitraire.

Un attaquant distant pourrait concevoir une requête HTTP malveillante destinée à n’importe quel point de terminaison React Server Function qui, une fois désérialisée par React, permettrait l’exécution de code arbitraire sur le serveur. Le taux de réussite de l’exploitation serait de près de 100 % dans les configurations par défaut.

Bien qu’aucun exploit de preuve de concept pour cette vulnérabilité n’ait été initialement disponible, le 4 décembre, un exploit complet d’exécution de code à distance « non officiel » et une analyse technique ont été rendus publics. Le lendemain, la preuve de concept originale du chercheur a également été rendue disponible –  cela rend l’exploitation de cette vulnérabilité extrêmement probable par des attaquants externes.

Qui est vulnérable à React2Shell ?

Serveurs React utilisant des points de terminaison React Server Function

Les serveurs React qui utilisent des points de terminaison React Server Function sont connus pour être vulnérables. Il est possible de vérifier si des applications React Server présentent cette fonctionnalité vulnérable en recherchant la directive use server ; dans l’un des fichiers de code source de l’application, ce qui indique qu’une fonction de serveur est définie.

Par exemple –

async function requestUsername(formData) {
  'use server';
  const username = formData.get('username');
  // ...
}

export default function App() {
  return (
    <form action={requestUsername}>
      <input type="text" name="username" />
      <button type="submit">Demander</button>
    </form>
  );
}

 

Serveurs React prenant en charge les React Server Components

L’avis de React indique : « Même si votre application ne met en œuvre aucun point de terminaison de fonction de serveur React, elle peut tout de même être vulnérable si elle prend en charge les composants React Server. »Il n’est pas clairement établi pour l’instant quelles conditions exactes permettent l’exploitation de CVE-2025-55182 lorsque les points de terminaison de fonction de serveur React ne sont pas mis en œuvre, mais que les React Server Components sont pris en charge.

Si votre application prend en charge les composants React Server, nous vous incitons vivement à mettre à jour les éléments vulnérables vers l’une des versions corrigées figurant dans le tableau ci-dessous.

Applications Web Next.js qui utilisent App Router

Le vecteur d’exploitation le plus probable passerait par les applications web Next.js (CVE-2025-66478), car elles sont vulnérables dans leur configuration par défaut. Par exemple, créer une application Next.js avec la commande standard create-next-app et utiliser les valeurs recommandées crée une application vulnérable, car ces valeurs activent l’App Router de Next.js, qui donne accès aux points de terminaison vulnérables de React Server Function. Ces applications next.js contiendront le répertoire app, ce qui signifie qu’elles utilisent l’App Router vulnérable.

Packages vulnérables et versions corrigées

Composants vulnérables Versions vulnérables Versions corrigées
react-server-dom-webpack 19.0.0

19.1.0 – 19.1.1

19.2.0

19.0.1

19.1.2

19.2.1

react-server-dom-parcel 19.0.0

19.1.0 – 19.1.1

19.2.0

19.0.1

19.1.2

19.2.1

react-server-dom-turbopack 19.0.0

19.1.0 – 19.1.1

19.2.0

19.0.1

19.1.2

19.2.1

Next.js 15.0.0 – 15.0.4

15.1.0 – 15.1.8

15.2.0 – 15.2.5

15.3.0 – 15.3.5

15.4.0 – 15.4.7

15.5.0 – 15.5.6

16.0.0 – 16.0.6

15.0.5

15.1.9

15.2.6

15.3.6

15.4.8

15.5.7

16.0.7

Next.js 14.3.0-canary.77 et les versions canary ultérieures Rétrogradez vers la dernière version stable 14.x en exécutant npm install next@14
Autres cadres Tout framework/bibliothèque intégrant l’implémentation vulnérable de React RSC (par ex., plug-in Vite RSC, plug-in Parcel RSC, aperçu React Router RSC, RedwoodSDK, Waku)

 

Comment puis-je atténuer React2Shell ?

  • La solution définitive pour résoudre les CVE-2025-55182 et CVE-2025-66478 consiste à mettre à niveau les packages vulnérables vers l’une des versions corrigées du tableau ci-dessus.

S’il n’est pas possible de procéder immédiatement à une mise à niveau, les solutions de contournement suivantes peuvent également rendre la vulnérabilité inexploitable –

  • Applications Next.js – Dans les cas où la fonctionnalité App Router n’est pas beaucoup utilisée, l’application web peut être migrée de nouveau vers l’utilisation du Pages Router en suivant le guide de migration Next.js App Router.

Comment puis-je suivre React2Shell ?

Utilisation de la plateforme JFrog

  • Les vulnérabilités sont suivies dans JFrog Xray sous les identifiants XRAY-900398 & XRAY-900476.
  • JFrog Catalog offre une visibilité complète en détectant automatiquement tous les packages React/Next.js vulnérables et en proposant des parcours de correction hiérarchisés à l’aide de données sur les versions corrigées.

JFrog React2Shell - image2

  • Les utilisateurs de JFrog Advanced Security peuvent consulter les résultats de l’analyse de CVE contextuelle pour CVE-2025-55182 et CVE-2025-66478 –

Dynamiquement – À l’aide d’un détecteur open source

Nous recommandons de rechercher dynamiquement les applications web vulnérables à l’aide du scanner suivant – https://github.com/assetnote/react2shell-scanner.

« Le scanner envoie une requête POST multipart spécialement conçue qui déclenche une condition d’erreur spécifique dans les versions vulnérables des composants React Server. Les hôtes vulnérables renvoient un code d’état 500 avec E{"digest" dans le corps de la réponse. Cette vérification distingue les hôtes vulnérables de ceux qui exécutent simplement RSC. »

Qu’est-ce qui rend React2Shell si dangereux ?

Voici quelques éléments distinctifs qui font de cette attaque un événement d’un tel impact :

  •  Compromission zéro configuration : attaquer l’état par défaut

La faille se situe dans la logique de désérialisation principale du protocole React Flight lui-même. Les applications Next.js sont vulnérables par défaut, car l’App Router vulnérable est utilisé dans la configuration par défaut. Un projet standard généré avec « create-next-app » est immédiatement exposé, même si le développeur n’a pas écrit la moindre ligne de code personnalisé. Cela signifie que la surface d’attaque est énorme et couvre un très grand nombre d’applications nouvellement déployées et largement utilisées.

  •  Préauthentification

Un attaquant n’a pas besoin d’identifiants, de jetons de session ni d’aucune interaction de l’utilisateur pour exploiter la faille. La charge utile malveillante cible le protocole React Flight, qui est traité avant l’exécution de la logique d’authentification personnalisée de l’application. L’attaque ne nécessite qu’une seule requête HTTP spécialement conçue, envoyée au serveur exposé au public.

  • Exécution de code à distance fiable

L’exploit permet aux attaquants de prendre le contrôle total du processus du serveur compromis. L’exploitabilité est proche de 100 % sur les systèmes vulnérables, ce qui fait de l’attaque un vecteur « à configurer et oublier » pour les acteurs malveillants. L’existence d’un code PoC public et fiable accélère le calendrier de l’exploitation massive, car elle abaisse considérablement la barrière à l’entrée pour les attaquants moins sophistiqués. Des tentatives d’analyse active et d’exploitation ont été détectées en conditions réelles quelques heures seulement après la divulgation publique.

Playbook de réponse d’entreprise

Quelles sont les mesures que les entreprises, y compris celles qui ne sont pas clientes de JFrog, devraient prendre dans l’immédiat, à moyen et à long terme

Voici les principales mesures que nous recommandons aux clients Enterprise de prendre :

  Période   Recommandation
  IMMÉDIAT   Mettez à niveau les packages vulnérables vers des versions corrigées (voir le tableau ci-dessus)
  MOYENNE   Applications Next.js – Si App-Router n’est pas requis, désactivez-le et migrez l’application
  LONG   L’attaque peut être détectée par des règles WAF – Ajoutez une solution de sécurité WAF

Adoptez une approche proactive avec JFrog

Avec le nombre croissant de vecteurs d’attaque, les équipes DevOps et les professionnels de la sécurité doivent redoubler d’efforts et adopter une plateforme basée sur le principe du shift-left pour la gestion et la sécurité de la chaîne d’approvisionnement logicielle. Pour comprendre comment JFrog peut aider à protéger votre organisation contre les attaques actuelles et futures, découvrez notre visite guidée en ligne, planifiez une démonstration ou commencez un essai gratuit dès aujourd’hui.