> ## Documentation Index
> Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# React2Shell (CVE-2025-55182) : RCE non authentifiée dans React Server Components

> Une désérialisation non sûre du protocole Flight de React 19 permet l'exécution de code arbitraire sur le serveur. CVSS 10.0, exploitation active.

*Publié le 10 décembre 2025*

<Warning>
  **CVE-2025-55182 — "React2Shell" — CVSS 10.0.** Exécution de code à distance, sans authentification, sur les serveurs Next.js et autres frameworks bâtis sur React 19 + Server Components. Exploitation active dans la nature.
</Warning>

## Pourquoi c'est sérieux

Si vous tournez **React 19 avec Server Components** (ce qui inclut la majorité des Next.js récents en mode App Router), votre serveur exécute, à chaque requête, du code de désérialisation pour le protocole Flight. Ce protocole sérialise les composants serveur entre Node.js et le navigateur — et c'est précisément là que le bug réside.

En forgeant une requête Flight malveillante, un attaquant **non authentifié** peut :

1. Manipuler les objets internes utilisés pour la résolution de modules,
2. Détourner les callbacks de Flight vers des primitives Node.js sensibles,
3. Aboutir à l'exécution de commandes shell sur l'hôte.

## Ce que ça permet

Une fois la RCE acquise, le scénario est classique mais brutal :

* Vol de variables d'environnement et de secrets serveur,
* Mouvement latéral vers les services internes accessibles depuis le pod ou la VM,
* Persistance via cron, daemon ou backdoor injectée dans le bundle,
* Déploiement de cryptominers ou de C2 sur l'infrastructure cloud.

Plusieurs groupes attribués à des États ont été observés en train d'exploiter la faille.

## Versions à mettre à jour

### React Server Components

Les paquets `react-server-dom-webpack`, `react-server-dom-parcel` et `react-server-dom-turbopack`, en versions 19.0.0 → 19.2.0, doivent passer à :

* `19.0.1`
* `19.1.2`
* `19.2.1`

### Next.js (App Router)

Mettez à jour à la version corrigée la plus proche de votre branche actuelle :

| Branche Next.js | Version corrigée |
| --------------- | ---------------- |
| 15.0            | 15.0.5           |
| 15.1            | 15.1.9           |
| 15.2            | 15.2.6           |
| 15.3            | 15.3.6           |
| 15.4            | 15.4.8           |
| 15.5            | 15.5.7           |
| 16.0            | 16.0.7           |

Après mise à jour, **redéployez tous les services concernés** — un simple `pnpm install` sans rebuild ne suffit pas.

## Réponse immédiate

1. **Inventaire** : listez les workloads React 19 / Next.js App Router dans votre infrastructure (production, staging, prévisualisations PR…).
2. **Patch** : appliquez les versions corrigées sur l'ensemble.
3. **Confinement** : restreignez l'accès public aux services qui n'ont pas encore pu être patchés.
4. **Investigation** : auditez les logs d'exécution suspects, faites tourner les secrets exposés (API keys, tokens session, variables d'environnement), montez la surveillance sur les hôtes non patchés tant que la migration n'est pas terminée.

## Vérifier ses versions

```bash theme={null}
# Versions installées
pnpm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack next

# Sur un workspace Next.js
npx next --version
```

## Ressources

Pour toute assistance technique, ouvrez un ticket depuis votre [espace client OnetSolutions](https://onetsolutions.net).
