Selon Searchlight Cyber (billet de recherche, 4 décembre 2025), une vulnérabilité de type RCE affectant Next.js en configuration par défaut via React Server Components (RSC) fait l’objet de nombreux PoC erronés, et l’équipe publie un test réseau précis pour confirmer la présence du défaut.

⚠️ Contexte et portée: L’avis du jour signale une exécution de code à distance (RCE) exploitable sans prérequis sur des applications Next.js utilisant RSC. Les auteurs soulignent que se contenter de détecter la présence de RSC n’est pas suffisant pour conclure à la vulnérabilité et que plusieurs PoC GitHub ne reflètent pas l’exploit réellement communiqué aux mainteneurs (référence à react2shell.com).

🛠️ Mécanisme de détection: L’équipe décrit une requête HTTP ciblée (POST multipart) qui, sur une version vulnérable, produit de façon fiable un HTTP 500 Internal Server Error avec un corps RSC caractéristique, notamment la présence de la chaîne E{“digest” dans la réponse et un Content-Type: text/x-component. Cette signature combinée (code 500 + motif E{“digest”}) est présentée comme un indicateur robuste d’hôte vulnérable.

🔍 Pourquoi cela fonctionne: Le comportement provient de la manière dont la dépendance « react-server » interprète des références délimitées par des deux-points pour accéder aux propriétés (p. ex. “$1:a:b”). En versions vulnérables, un accès à une propriété inexistante provoque une exception côté serveur (ex. mapping vers undefined.a), d’où le 500. Les versions corrigées ajoutent une vérification (hasOwnProperty) évitant le crash lorsque la propriété n’existe pas.

📦 Outils et références: Searchlight Cyber renvoie à un scanner GitHub (assetnote/react2shell-scanner) pour automatiser la détection sur des listes d’hôtes. L’article indique que des clients de la plateforme ASM d’Assetnote ont reçu une alerte basée sur ce test à haute fidélité. Le billet insiste sur la fidélité du signal et sur la distinction entre simples indices de RSC et véritable exposition à la RCE.

TTPs observés:

  • Abus de la notation « clé » délimitée par des deux-points dans React Server Components pour provoquer une exception côté serveur.
  • Détection par requête HTTP POST multipart structurée pour Next.js/RSC et identification d’une réponse 500 avec Content-Type text/x-component et la présence de E{“digest”} dans le corps.

IOCs:

  • Aucuns IOCs traditionnels (IP, domaines malveillants, hachages) fournis; la détection repose sur un motif de réponse applicative (500 + E{“digest”}).

Type d’article: publication de recherche présentant un mécanisme de détection haute-fidélité et expliquant la cause technique du défaut.

🧠 TTPs et IOCs détectés

TTP

Abus de la notation « clé » délimitée par des deux-points dans React Server Components pour provoquer une exception côté serveur; Détection par requête HTTP POST multipart structurée pour Next.js/RSC et identification d’une réponse 500 avec Content-Type text/x-component et la présence de E{“digest”} dans le corps.

IOC

Aucuns IOCs traditionnels (IP, domaines malveillants, hachages) fournis; la détection repose sur un motif de réponse applicative (500 + E{“digest”}).


🔗 Source originale : https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478/