
CVE-2025-55182 (React2Shell) Scanner
Un kit d'évaluation de sécurité développé par la Rapticore Security Research Team pour détecter les vulnérabilités des React Server Components (RSC), notamment CVE-2025-55182 (React2Shell) - une vulnérabilité critique d'exécution de code à distance.
Cet outil fournit deux outils spécialisés :
| Outil | Description |
|---|---|
ore_rsc.py | Scanner rapide d'endpoints RSC pour des évaluations rapides |
ore_react2shell.py | Suite d'évaluation complète avec énumération de sous-domaines et rapport |
https://github.com/user-attachments/assets/5be7661b-515c-46b4-ade4-8e88fdff6528
Scanner détectant les vulnérabilités CVE-2025-55182 (React2Shell) dans une application Next.js de test.
CVE-2025-55182 (React2Shell) est une vulnérabilité RCE critique affectant les React Server Components :
| Paquets concernés | Versions vulnérables | Versions corrigées |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
Référence : GHSA-fv66-9v8q-g76r
ore_rsc.py)ore_react2shell.py)# Clone the repository
git clone https://github.com/rapticore/ore_react2shell_scanner.git
cd ore_react2shell_scanner
# Create virtual environment
python3 -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
# Install dependencies
pip install aiohttp jinja2
# Optional: Install subfinder for subdomain enumeration
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
ore_rsc.py# Single domain scan
python ore_rsc.py example.com
# Multiple domains
python ore_rsc.py example.com api.example.com
# Scan from file
python ore_rsc.py -f subdomains.txt
# Deep scan with extended paths
python ore_rsc.py example.com --deep
# Active verification (sends PoC payload)
python ore_rsc.py example.com --verify
# Safe side-channel check (non-exploitative)
python ore_rsc.py example.com --safe-check
# JSON output
python ore_rsc.py example.com --format json -o results.json
ore_react2shell.py# Full assessment with subdomain enumeration
# Results saved to: results/example_com_{timestamp}/
python ore_react2shell.py --domain example.com
# Use existing subdomain list
python ore_react2shell.py --domain example.com -f subdomains.txt
# Multiple root domains
python ore_react2shell.py --domain example.com --domain example.org
# With active verification
python ore_react2shell.py --domain example.com --verify
# Safe side-channel check
python ore_react2shell.py --domain example.com --safe-check
# Skip subdomain enumeration
python ore_react2shell.py --domain example.com --skip-enum
# Custom output directory
python ore_react2shell.py --domain example.com -o ./reports
Les rapports sont automatiquement organisés par domaine et horodatage :
results/
└── example_com_20250106_143052/
├── rsc_assessment.html # Interactive HTML report
├── rsc_assessment.json # Machine-readable JSON
├── rsc_assessment.csv # Spreadsheet format
└── rsc_assessment_executive_summary.txt # Text summary
| Option | Description |
|---|---|
domains | Domaine(s) à scanner |
-f, --file | Fichier contenant les domaines (un par ligne) |
-c, --concurrency | Requêtes concurrentes (par défaut : 20) |
-t, --timeout | Délai d'attente des requêtes en secondes (par défaut : 25) |
--deep | Scan approfondi avec chemins étendus |
--verify | Vérification active - envoie une charge utile RCE PoC |
--safe-check | Vérification sécurisée par canal auxiliaire |
--waf-bypass | Mode de contournement WAF avec données factices |
-o, --output | Chemin du fichier de sortie |
--format | Format de sortie : console, json, csv |
| Option | Description |
|---|---|
-d, --domain | Domaine(s) cible(s) à évaluer (obligatoire) |
-f, --file | Fichier contenant les sous-domaines |
--skip-enum | Ignorer l'énumération de sous-domaines |
-c, --concurrency | Requêtes concurrentes (par défaut : 30) |
--deep | Scan approfondi avec chemins étendus |
--verify | Mode de vérification active |
--safe-check | Vérification sécurisée par canal auxiliaire |
-o, --output | Répertoire de sortie de base (par défaut : results) |
--format | Format de sortie : html, json, csv, txt, all |
Le scanner implémente une logique de vérification robuste pour gérer les serveurs instables :
Les scanners détectent les endpoints RSC via :
text/x-component, text/x-rsc, text/x-flightx-nextjs-cache, rsc, next-action, etc.0:, 1:), références React ($)$ACTION_ID, attributs formAction| Niveau de risque | Critères |
|---|---|
| CRITIQUE | Exploitation confirmée via --verify |
| ÉLEVÉ | Probablement vulnérable via --safe-check |
| MOYEN | Endpoint RSC avec actions serveur |
| FAIBLE | Endpoint RSC détecté |
| INFO | Indicateurs RSC présents |
Si des endpoints vulnérables sont détectés :
react-server-dom-* vers les versions corrigées (19.0.1, 19.1.2, 19.2.1+)Cet outil est destiné uniquement aux évaluations de sécurité autorisées. Utilisez-le uniquement sur des domaines que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester.
La Rapticore Security Research Team décline toute responsabilité en cas d'utilisation abusive.