CVE-2025-55182 : RCE critique non authentifiée dans les React Server Components via une désérialisation non sécurisée

Les React Server Components constituent une architecture de développement web moderne permettant aux développeurs de créer des applications combinant le rendu côté serveur et une expérience interactive côté client. Cette technologie est au cœur de frameworks tels que Next.js et est de plus en plus adoptée pour la construction d’applications web hautes performances et évolutives. Comme elle gère les requêtes client côté serveur, sa sécurité est fondamentale pour l’intégrité de l’application web.

Cette vulnérabilité représente un risque critique, permettant une exécution de code à distance (RCE) non authentifiée. L’impact est une compromission complète du système, avec un score CVSS de 10.0. La difficulté pour un attaquant est faible, car la vulnérabilité peut être déclenchée par une simple requête HTTP spécialement conçue vers un point de terminaison exposé du serveur.

Étant donné que la vulnérabilité a été rendue publique et que des exploits de type preuve de concept (PoC) sont disponibles, il faut présumer une exploitation active dans des environnements réels. Toute application accessible depuis Internet utilisant des versions vulnérables de React Server Components est exposée à un risque immédiat de compromission. Une attaque réussie peut entraîner de graves violations de données, des interruptions de service et des attaques en chaîne contre l’infrastructure compromise.

ProduitReact Server Components
Date2025-12-03 16:50:52

Résumé technique

La cause principale de cette vulnérabilité est un défaut de désérialisation non sécurisée au sein de la logique de traitement des données des Server Functions dans les React Server Components. Le serveur ne nettoie ni ne valide correctement les données reçues du client avant de les désérialiser.

La chaîne d’attaque se déroule comme suit :

  1. Un attaquant non authentifié crée une charge utile (payload) malveillante contenant des données sérialisées. Cette charge utile est conçue pour exécuter du code arbitraire lorsqu’elle est traitée par le mécanisme de désérialisation du serveur.
  2. L’attaquant envoie cette charge utile dans une requête HTTP vers un point de terminaison de Server Function exposé publiquement.
  3. Le composant côté serveur reçoit la requête et tente de désérialiser la charge utile non fiable.
  4. En raison de l’absence de validation, le processus de désérialisation déclenche le code malveillant intégré, conduisant à l’exécution arbitraire de code avec les privilèges du processus du serveur web.

Un attaquant peut exploiter cette vulnérabilité pour obtenir le contrôle total du serveur concerné, permettant de dérober des données sensibles, d’installer des logiciels malveillants ou de se déplacer latéralement vers d’autres systèmes du réseau.

Versions concernées :

  • react-server-dom-parcel : versions 19.0.0 à 19.2.0
  • react-server-dom-turbopack : versions 19.0.0 à 19.2.0
  • react-server-dom-webpack : versions 19.0.0 à 19.2.0

Un correctif a été publié et il est fortement recommandé de mettre à jour immédiatement vers les versions les plus récentes de ces paquets.

Recommandations

  • Correctif immédiat : Mettre à jour tous les paquets React Server Components concernés (react-server-dom-parcel, react-server-dom-turbopack, react-server-dom-webpack) vers les versions les plus récentes disponibles. Ne retardez pas l’application du correctif, car une exploitation active est hautement probable.

  • Atténuations :

    • Implémenter un pare-feu d’application web (WAF) avec des règles conçues pour inspecter et bloquer les charges utiles anormales ou malveillantes liées à la désérialisation dans le trafic HTTP. Plusieurs fournisseurs, comme Cloudflare, ont déjà implémenté des règles de patch virtuel.
    • S’il n’est pas possible d’appliquer le correctif immédiatement, limiter temporairement l’accès aux applications web vulnérables à des plages d’adresses IP de confiance, bien que cette mesure ne remplace pas le correctif.

  • Chasse & Surveillance :

    • Analyser les journaux du serveur HTTP à la recherche de requêtes inhabituelles ou malformées vers les points de terminaison des Server Functions. Prêter attention aux modèles de données suspects qui ne correspondent pas au trafic légitime de l’application.
    • Surveiller les processus du serveur pour détecter des processus enfants inattendus, des connexions réseau sortantes vers des destinations inconnues ou des modifications inhabituelles de fichiers, qui sont tous des indicateurs potentiels de compromission.

  • Réponse aux incidents :

    • En cas de suspicion de compromission, isoler immédiatement le serveur concerné du réseau pour empêcher les mouvements latéraux.
    • Conserver les journaux du serveur, les vidages mémoire et les images disque pour l’analyse forensique.
    • Présumer que toutes les informations d’identification ou secrets présents sur le serveur compromis ont été exfiltrés et lancer les procédures de rotation.

  • Défense en profondeur :

    • Exécuter les processus de l’application web avec le moins de privilèges possible pour limiter l’impact d’une éventuelle RCE.
    • Implémenter la segmentation du réseau pour empêcher un serveur web compromis d’accéder à des systèmes internes critiques.
    • S’assurer que des sauvegardes régulières des données critiques sont effectuées et stockées dans un emplacement sécurisé et isolé.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *