
Détecte la vulnérabilité RCE CVE-2025-55182 (React2Shell) dans les composants serveur React. Scanner rapide et précis avec zéro faux positif.
RCE CVSS 10.0 dans les React Server Components. Votre application React 19 est-elle vulnérable ?
Scanner rapide et précis pour CVE-2025-55182 (React2Shell) - une vulnérabilité critique d'exécution de code à distance exploitée dans la nature. Zéro faux positif grâce à une détection intelligente des Server Components.
React2Shell est une vulnérabilité de sévérité maximale (CVSS 10.0) dans les React Server Components permettant l'exécution de code à distance sans authentification. Les attaquants peuvent l'exploiter via des requêtes HTTP spécialement conçues envoyées aux points de terminaison des Server Functions.
Points clés :
⚠️ Note critique : Seul React 19.x est vulnérable. React 18.x et versions antérieures ne sont PAS concernés.
# Option A: Node.js scanner (recommended - cross-platform, no dependencies)
npx react2shell-scanner /path/to/your/project
# Option B: Direct download and run
curl -sSL https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js > scan.js
node scan.js /path/to/your/project
# Option C: Clone and run
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
node scan.js /path/to/your/project
Résultats en quelques secondes : 🚨 Vulnérable | ⚠️ Avertissements | ✅ Sûr
Cet outil effectue une détection intelligente des vulnérabilités :
'use server'React :
19.0.0, 19.1.0, 19.1.1, 19.2.0Paquets React Server DOM :
react-server-dom-webpack 19.0.0 - 19.2.0react-server-dom-parcel 19.0.0 - 19.2.0react-server-dom-turbopack 19.0.0 - 19.2.0Next.js :
14.0.0 à 14.2.3414.3.0-canary.0 à 14.3.0-canary.8715.0.0 à 15.0.615.1.0 à 15.1.815.2.0 à 15.2.515.3.0 à 15.3.515.4.0 à 15.4.715.5.0 à Autres frameworks affectés (selon l'avis officiel de React) :
react-router 7.0.0 - 7.1.3waku 0.21.0 - 0.21.5@parcel/rsc 2.12.0 - 2.13.2@vitejs/plugin-rsc 0.1.0 - 0.2.0rwsdk (Redwood SDK) 0.1.0 - 0.4.0expo 52.0.0 - 52.0.9React : 19.2.1 ou version ultérieure
Next.js :
14.2.35+, 14.3.0-canary.88+15.0.7+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+16.0.10+Autres frameworks :
react-router : 7.1.4+waku : 0.21.6+@parcel/rsc : 2.13.3+@vitejs/plugin-rsc : 0.2.1+rwsdk : 0.4.1+expo : 52.0.10+Scanner Node.js (recommandé) :
Scanner Bash :
# Install jq (if using Bash scanner)
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# RHEL/CentOS
sudo yum install jq
Option A : Cloner (recommandé pour les utilisateurs)
# Clone the repository
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
# Make scripts executable
chmod +x scan.sh scan.js
Option B : Fork (recommandé pour les contributeurs)
# Fork on GitHub (click "Fork" button on repository page)
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/react2shell-scanner.git
cd react2shell-scanner
# Make scripts executable
chmod +x scan.sh scan.js
# Add upstream remote to stay updated
git remote add upstream https://github.com/nxgn-kd01/react2shell-scanner.git
Option C : Téléchargement direct
# Node.js version (recommended - cross-platform)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js
chmod +x scan.js
# Bash version (Unix/Linux/macOS only)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.sh
chmod +x scan.sh
🔍 Analyser le répertoire courant :
# Using Node.js (recommended)
node scan.js
# Using Bash
./scan.sh
📁 Analyser un projet spécifique :
node scan.js /path/to/project
./scan.sh /path/to/project
🗂️ Analyse récursive (tous les sous-répertoires) :
node scan.js -r
./scan.sh -r
Sortie JSON (pour l'automatisation) :
node scan.js --json
./scan.sh --json
Mode CI/CD (se termine avec le code 1 si vulnérable) :
node scan.js --ci
./scan.sh --ci
Sortie détaillée :
node scan.js -v
./scan.sh -v
Combiner les options :
node scan.js /path/to/projects -r --json --ci
./scan.sh /path/to/projects -r --json --ci
| Code | Signification |
|---|---|
| 0 | Aucune vulnérabilité trouvée |
| 1 | Vulnérabilités trouvées (en utilisant l'option --ci) |
| 2 | Une erreur d'analyse s'est produite |
$ node scan.js ~/my-react-app
╔════════════════════════════════════════════════════════════╗
║ CVE-2025-55182 Scanner (React2Shell) ║
╚════════════════════════════════════════════════════════════╝
Severity: CRITICAL (CVSS 10.0)
Description: Unauthenticated RCE in React Server Components
Scan Summary:
Total projects: 1
Vulnerable: 1
Safe: 0
⚠ VULNERABLE PROJECTS FOUND:
1. /Users/user/my-react-app
└─ react 19.0.0 → 19.2.1
└─ next 15.0.3 → 15.0.5
Fix command:
$ cd /Users/user/my-react-app
$ npm install [email protected] [email protected]
$ node scan.js ~/projects -r --json > results.json
{
"vulnerability": "CVE-2025-55182",
"severity": "CRITICAL",
"cvss": 10.0,
"scanned": 5,
"vulnerable": 2,
"results": [
{
"path": "/Users/user/projects/app1",
"vulnerable": true,
"packages": [
{
"name": "react",
"version": "19.0.0",
"fixVersion": "19.2.1"
}
],
"packageManager": "npm",
"fixCommands": [
"cd /Users/user/projects/app1",
"npm install [email protected]"
]
}
]
}
.github/workflows/security-scan.yml
name: CVE-2025-55182 Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Download CVE-2025-55182 Scanner
run: |
curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
chmod +x scan.js
- name: Scan for vulnerabilities
run: node scan.js --ci
GitLab CI (.gitlab-ci.yml)
security-scan:
stage: test
image: node:18
script:
- curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
- chmod +x scan.js
- node scan.js --ci
allow_failure: false
Le scanner effectue les vérifications suivantes :
package.jsondependencies et devDependencies'use server' dans les fichiers sources'use server' (indique que des Server Functions sont utilisées)Le scanner intègre une détection intelligente pour éviter les faux positifs :
output: 'export' sont marqués comme probablement sûrs'use server' pour confirmer l'utilisation réelle des Server ComponentsExemple de sortie :
✓ No vulnerable projects found
ℹ Projects with analysis notes:
1. /path/to/project
ℹ Next.js ^15.1.3 is in vulnerable range, but using React 18 (safe - only React 19 affected)
2. /path/to/another-project
ℹ Next.js 16.0.5 with React 19 detected, but no 'use server' directives found (likely safe).
Note: dynamically imported Server Functions require manual review.
node scan.js -r
Pour chaque projet vulnérable, exécutez la commande de correctif suggérée :
cd /path/to/project
npm install [email protected] [email protected] # Example
Ou avec yarn :
yarn upgrade [email protected] [email protected]
Ou avec pnpm :
pnpm update [email protected] [email protected]
npm test
npm run build
node scan.js --ci
R : Actuellement, le scanner vérifie les dépendances directes dans package.json. Pour une analyse approfondie des dépendances, utilisez npm audit ou yarn audit en combinaison avec cet outil.
R : Non, React 18 n'est PAS concerné ✅
CVE-2025-55182 n'affecte que les Server Components de React 19.x. Le scanner identifiera correctement les applications React 18 comme sûres, même si elles utilisent des versions Next.js 15.x ou 16.x se trouvant dans la plage vulnérable.
R : Oui ! Utilisez l'option --ci pour que le scanner se termine avec le code 1 si des vulnérabilités sont trouvées, ce qui fera échouer votre pipeline. Voir les exemples d'intégration CI/CD ci-dessus.
R : Atténuations temporaires (la mise à niveau est le seul correctif définitif) :
⚠️ Critique : Il s'agit uniquement de mesures temporaires. Mettez à niveau vers les versions corrigées dès que possible.
R : Très précis avec une prévention intelligente des faux positifs :
'use server' pour confirmer la vulnérabilité réelleR : Le scanner détecte les directives 'use server' dans vos fichiers sources. Cependant, les Server Functions importées dynamiquement (chargées au moment de l'exécution via import()) peuvent ne pas être détectées statiquement. Si le scanner indique « aucune directive 'use server' trouvée » mais que vous utilisez des imports dynamiques pour les Server Functions, vous devriez vérifier manuellement ces fichiers. Le scanner inclura une note vous le rappelant.
Les contributions sont les bienvenues ! N'hésitez pas à soumettre des issues ou des pull requests.
# Test on sample projects
./test-scanner.sh
Ce scanner détecte désormais tous les principaux frameworks compatibles RSC, selon l'avis officiel de React :
Pour des frameworks supplémentaires, veuillez ouvrir une issue ou soumettre une PR.
Licence MIT - voir le fichier LICENSE pour plus de détails
Cet outil est fourni tel quel à la communauté pour aider à identifier les projets vulnérables. Vérifiez toujours les résultats du scanner et testez les mises à jour dans un environnement sûr avant de les déployer en production.
Si vous trouvez cet outil utile, merci de :
Restez en sécurité et maintenez vos dépendances à jour !
| Propriété | Valeur |
|---|
| ID CVE | CVE-2025-55182 |
| Nom | React2Shell |
| Score CVSS | 10.0 (CRITIQUE) |
| Vecteur CVSS | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Vecteur d'attaque | Réseau |
| Authentification | Aucune requise |
| Impact | Compromission totale du système |
15.5.616.0.0 à 16.0.9| Option | Description |
|---|
-r, --recursive | Analyse tous les sous-répertoires à la recherche de projets Node.js |
-v, --verbose | Affiche une sortie détaillée |
--json | Affiche les résultats au format JSON |
--ci | Se termine avec le code 1 si des vulnérabilités sont trouvées (pour CI/CD) |
-h, --help | Affiche le message d'aide |