- Une vulnérabilité d’exécution de code à distance (RCE) permettant d’exécuter du code arbitraire sans authentification a été découverte dans les React Server Components, et une mise à niveau immédiate est nécessaire
- Next.js est également impacté, et vulnérable lorsqu’on utilise App Router. Next.js la suit sous la référence CVE-2025-66478
- La cause première de la vulnérabilité est la server-side prototype pollution (pollution de prototype côté serveur), permettant à un attaquant de manipuler le prototype d’un objet JavaScript et d’exécuter des commandes via
child_process.execSync, entre autres
- Un code PoC public (preuve de concept) s’est diffusé très rapidement, et Datadog a détecté, au 5 décembre, des tentatives d’attaque réelles depuis plus de 800 adresses IP
- Cette vulnérabilité, évaluée à 10 au CVSS, est particulièrement critique sur Next.js 15.x~16.x, et l’application des derniers correctifs est indispensable
Vue d’ensemble de la vulnérabilité principale
- Le 3 décembre, une vulnérabilité autorisant l’exécution de code arbitraire sans authentification dans React Server Components a été découverte et enregistrée sous CVE-2025-55182
- La vulnérabilité s’exécute côté serveur, et un attaquant peut exécuter du code à distance
- Next.js est concerné car il inclut le composant vulnérable
- Next.js est suivi séparément sous CVE-2025-66478, mais la NVD a officiellement rejeté cette CVE
- Le score CVSS est de 10/10 ; Datadog a confirmé que l’attaque est très simple et reproductible même sur une app Next.js générée à partir d’un template par défaut
- Au 5 décembre, des tentatives d’attaque réelles avec des payloads armés ont été observées
Versions impactées et mesures d’atténuation
- Bibliothèques React vulnérables :
react-server-dom-parcel, react-server-dom-webpack, react-server-dom-turbopack
- Versions vulnérables : 19.0~19.2.0 / Versions corrigées : 19.0.1, 19.1.2, 19.2.1
- Versions impactées de Next.js
- Vulnérables : 15.x, 16.x, après 14.3.0-canary.77
- Corrigées : 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
- Vérification de la vulnérabilité possible via la commande
npm audit
- La solution consiste à mettre à niveau vers une version corrigée
Analyse de la vulnérabilité et PoC
- Le 3 décembre, un correctif a été commité dans le dépôt React
- La modification consiste à modifier
requireModule pour vérifier l’existence d’une propriété d’objet
- Cette vulnérabilité est de type server-side prototype pollution, qui permet d’exécuter du code arbitraire en polluant le prototype d’un objet
- PoC publiés :
- Le premier PoC (
ejpir/CVE-2025-55182-poc) est non fonctionnel
- Le deuxième PoC (
msanft/CVE-2025-55182) fonctionne même sur une app Next.js par défaut
- Le 5 décembre, le rapporteur initial Lachlan Davidson a publié une version officielle de PoC avec trois variantes
Activité d’attaque réelle
- Datadog a détecté des activités de scan à partir du 3 décembre à 22 h (UTC)
- Au 5 décembre, des scans et des tentatives d’attaque ont été confirmés depuis plus de 800 adresses IP
- Plus de deux organisations ont été ciblées, et une activité continue a été observée après le 4 décembre
- Flux d’attaque :
- Initialement, des scans basés sur un PoC non fonctionnel
- Puis le PoC de Moritz Sanft, puis celui de Davidson, avec substitution progressive des payloads
- Payloads observés :
- Lecture de
/etc/passwd, exécution de whoami, téléchargement de scripts distants via curl·wget, etc.
- Certains incluaient le vol de variables d’environnement (
.env) et la collecte d’informations système
Concept de pollution de prototype côté serveur
- Un cas de CWE-1321, qui se produit quand la gestion des attributs du prototype d’un objet est incorrecte
- Généralement exploitée via XSS côté frontend, mais au niveau serveur, elle peut mener à du RCE ou à la lecture de fichiers
- Dans l’exemple de code, la pollution via
__proto__ modifie Object.prototype, et tous les objets créés ensuite sont affectés
- En conséquence, lors d’un appel à
spawnSync('sh'), une commande malveillante est injectée en entrée puis exécutée
Détection et fonctions de défense Datadog
- Datadog Code Security détecte les bibliothèques vulnérables sur GitHub ou en runtime
- Recherche disponible pour CVE-2025-55182 ou CVE-2025-66478
- Datadog App and API Protection (AAP) peut bloquer les attaques en runtime
- Datadog Workload Protection fournit des règles personnalisées pour détecter l’exécution de commandes telles que
wget, curl, bash dans les processus Node
Références complémentaires
- Recommandations officielles : React, Next.js
- Réactions des fournisseurs cloud : AWS, Vercel, Google Cloud, Akamai, Cloudflare
- Analyses de fournisseurs de sécurité : Wiz, Tenable, SearchLight Cyber
- Alertes CERT : CERT-EU, CERT-SE, CERT-AU
- Scanner public : assetnote/react2shell-scanner
Aucun commentaire pour le moment.