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-React2Shell-Async-Scanner — Scanner RCE asynchrone pour CVE-2025-55182 / CVE-2025-66478 — pollution de prototype → exécution de code via React Server Actions. | Kitploit
Outils/GitHubGitHub/inferiorak/cve-2025-55182-react2shell-async-scanner
ReconnaissanceScanners de VulnérabilitésAnalyse Dynamique (Sandboxing)Analyse de CodeExploitationExploitation d'Applications WebCollecte d'InformationsCTFTests d'Intrusion

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 →
Apprentissage et Éducation
Développement de Charges Utiles
GitHubinferiorak/cve-2025-55182-react2shell-async-scanner

CVE-2025-55182-React2Shell-Async-Scanner

Scanner RCE asynchrone pour CVE-2025-55182 / CVE-2025-66478 — pollution de prototype → exécution de code via React Server Actions.

Voir le dépôt
3115il y a 6 moisPas encore vérifié
Partager

⚡ React2Shell

CVE-2025-55182 / CVE-2025-66478 - Scanneur RCE Asynchrone

Python CVE CVE License Author Visitors

Prototype-pollution → Exécution de Code à Distance via les React Server Actions

Détection asynchrone, priorité à la version, canaries basées sur la sortie - pas de devinette aveugle


[!WARNING] Réservé à la recherche en sécurité autorisée et aux tests d'intrusion uniquement. Scanner des systèmes sans autorisation écrite explicite est illégal. L'auteur décline toute responsabilité en cas d'utilisation abusive de cet outil.


Table des matières

  • Aperçu de la vulnérabilité
  • Versions affectées
  • Comment fonctionne la détection
  • Installation
  • Utilisation
  • Référence des options
  • Sortie et verdicts
  • Mode navigateur
  • Pipeline de détection de version

Aperçu de la vulnérabilité

Les React Server Actions transmettent les données d'action en tant que form-data multipart directement dans un contexte d'exécution côté serveur. En raison d'une insuffisance de l'assainissement de la pollution de prototype dans les versions affectées de react-server-dom-webpack, un attaquant peut :

  1. Injecter une charge utile multipart conçue qui pollue Object.prototype
  2. Remplacer _response._prefix sur l'objet de réponse interne
  3. Forcer le serveur à exécuter des commandes shell arbitraires via :
    process.mainModule.require('child_process').execSync(cmd)
    

Cela donne une exécution de code à distance non authentifiée sur toute application Next.js accessible publiquement utilisant les React Server Actions avec une version affectée de React.

CVE-2025-55182 - Large : affecte les packages React 19 (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack)
CVE-2025-66478 - Strict : voie d'exploitation spécifique à Next.js via le point de terminaison Server Action /


Versions affectées

ComposantVulnérableCorrigé
React react-server-dom-*19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
Next.js 16.x16.0.0 – 16.0.616.0.7+
Next.js 15.x15.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.615.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+
Next.js 14.x14.3.0-canary.77+ constructions canary uniquementTous les 14.x stables - NON affectés
Next.js 13.x-NON affectés

Comment fonctionne la détection

Ce scanner utilise une vérification par canarie basée sur la sortie - la méthode la plus fiable pour confirmer une exécution de code réelle avec zéro faux positif :

1.  POST /  avec en-tête Next-Action + charge utile multipart de pollution de prototype
2.  La charge utile exécute :  echo <random_canary>
3.  Le serveur vulnérable génère NEXT_REDIRECT avec base64(canary) dans l'URL
4.  En-tête de réponse :   X-Action-Redirect: /login?a=<base64(canary)>
5.  Le scanner décode base64 → correspond à la canarie → RCE confirmé ✓

allow_redirects=False est crucial - la confirmation se trouve dans l'en-tête, pas dans la destination de redirection.


Installation

git clone https://github.com/InferiorAK/React2Shell
cd React2Shell

pip install -r requirements.txt

# Required only if using --browser mode for improved version detection:
playwright install chromium
playwright install-deps chromium

Prérequis : Python 3.10+


Utilisation

Scanneur CVE-2025-55182 - Large (React + Next.js)

# Single target
python3 CVE-2025-55182_scanner.py -u https://target.com

# Scan a list of URLs
python3 CVE-2025-55182_scanner.py -f urls.txt

# Quiet mode - only print RCE / Vulnerable results
python3 CVE-2025-55182_scanner.py -f urls.txt -q

# Browser mode - headless Chromium for accurate version detection
python3 CVE-2025-55182_scanner.py -f urls.txt -b

# Full options - recommended for large-scale scanning
python3 CVE-2025-55182_scanner.py -f urls.txt -b -q -c 3 -t 20

Référence des options

Scanneur CVE-2025-55182

DrapeauForme longueDéfautDescription
-u--url-URL cible unique
-f--file-Fichier contenant une URL par ligne
-o--outputoutputs/vuln.txtFichier de sortie pour les cibles vulnérables
-U--unknown-outputoutputs/unknown.txtFichier de sortie pour les cibles de version inconnue
-c--concurrency5Connexions HTTP concurrentes
-t--timeout15Délai d'attente par requête (secondes)
-q--quietdésactivéAfficher uniquement les lignes RCE / VULNERABLE
-b--browserdésactivéRepli de détection de version Playwright Chromium sans tête

Sortie et verdicts

Chaque cible scannée se voit attribuer l'un des verdicts suivants :

VerdictCouleurSignification
RCE🔴 RougeCanarie confirmée dans X-Action-Redirect - exécution de code à distance prouvée
VULNERABLE🟠 OrangeLa version est dans la plage vulnérable ; la charge utile RCE n'a pas renvoyé d'écho (WAF / configuration corrigée / mauvais point de terminaison)
Unknown🟡 JauneNext.js confirmé mais la version n'a pas pu être détectée - RCE tenté quand même ; enregistré dans outputs/unknown.txt pour nouvelle tentative en mode navigateur
Not Vulnerable🟢 VertVersion confirmée comme corrigée, ou RCE a explicitement renvoyé un résultat sûr
Skipped⚪ BlancVersion confirmée comme corrigée ou site non Next.js - aucune tentative de PoC
Error⚪ BlancHôte inaccessible ou connexion échouée

Fichiers de sortie (enregistrés dans le dossier outputs/, créés automatiquement) :

  • outputs/vuln.txt — Résultats RCE et VULNERABLE (ajoutés à chaque exécution)
  • outputs/unknown.txt — Cibles de version Unknown ; réessayez avec -b pour une détection précise de la version

Mode navigateur

Pourquoi la version apparaît-elle comme unknown pour plus de 90% des sites ?

Next.js 13+ moderne utilisant l'architecture App Router n'intègre jamais la version du framework dans le HTML statique. La version n'existe que dans window.next.version après exécution du JavaScript dans un contexte de navigateur réel.

Sans --browser :

  • La détection de version repose sur les en-têtes HTTP, __NEXT_DATA__, les scripts inline et les fichiers de chunk hachés
  • Les sites App Router renvoient presque toujours unknown - le filtrage basé sur la version est contourné
Télécharger l’outil