
Rileva la vulnerabilità RCE CVE-2025-55182 (React2Shell) in React Server Components. Scanner rapido e accurato con zero falsi positivi.
RCE con CVSS 10.0 nei React Server Components. La tua app React 19 è vulnerabile?
Scanner rapido e accurato per CVE-2025-55182 (React2Shell) - una vulnerabilità critica di esecuzione remota di codice sfruttata attivamente in ambienti reali. Zero falsi positivi grazie al rilevamento intelligente dei Server Components.
React2Shell è una vulnerabilità di nei React Server Components che consente l'esecuzione remota di codice senza autenticazione. Gli attaccanti possono sfruttarla tramite richieste HTTP appositamente create verso gli endpoint delle Server Function.
Fatti chiave:
⚠️ Nota critica: Solo React 19.x è vulnerabile. React 18.x e versioni precedenti NON sono interessati.
# 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
Risultati in pochi secondi: 🚨 Vulnerabile | ⚠️ Avvisi | ✅ Sicuro
Questo strumento esegue un rilevamento intelligente delle vulnerabilità:
'use server'| Proprietà | Valore |
|---|---|
| CVE ID | CVE-2025-55182 |
| Nome | React2Shell |
| Punteggio CVSS | 10.0 (CRITICO) |
| Vettore CVSS | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Vettore di attacco | Rete |
| Autenticazione | Non richiesta |
| Impatto | Compromissione completa del sistema |
React:
19.0.0, 19.1.0, 19.1.1, 19.2.0Pacchetti 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 a 14.2.3414.3.0-canary.0 a 14.3.0-canary.8715.0.0 a 15.0.615.1.0 a 15.1.815.2.0 a 15.2.515.3.0 a 15.3.515.4.0 a 15.4.715.5.0 a 15.5.616.0.0 a 16.0.9Framework aggiuntivi interessati (secondo l'avviso ufficiale di 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 o successive
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+Altri framework:
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 (consigliato):
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
Opzione A: Clona (consigliata per gli utenti)
# 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
Opzione B: Fork (consigliata per i contributori)
# 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
Opzione C: Download diretto
# 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
🔍 Scansione della directory corrente:
# Using Node.js (recommended)
node scan.js
# Using Bash
./scan.sh
📁 Scansione di un progetto specifico:
node scan.js /path/to/project
./scan.sh /path/to/project
🗂️ Scansione ricorsiva (tutte le sottodirectory):
node scan.js -r
./scan.sh -r
Output JSON (per l'automazione):
node scan.js --json
./scan.sh --json
Modalità CI/CD (termina con codice 1 in caso di vulnerabilità):
node scan.js --ci
./scan.sh --ci
Output dettagliato (verbose):
node scan.js -v
./scan.sh -v
Combina le opzioni:
node scan.js /path/to/projects -r --json --ci
./scan.sh /path/to/projects -r --json --ci
| Opzione | Descrizione |
|---|---|
-r, --recursive | Analizza tutte le sottodirectory per i progetti Node.js |
-v, --verbose | Mostra un output dettagliato |
--json | Restituisce i risultati in formato JSON |
--ci | Termina con codice 1 se vengono trovate vulnerabilità (per CI/CD) |
-h, --help | Mostra il messaggio di aiuto |
| Codice | Significato |
|---|---|
| 0 | Nessuna vulnerabilità trovata |
| 1 | Vulnerabilità trovate (quando si usa il flag --ci) |
| 2 | Si è verificato un errore di scansione |
$ 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
Lo scanner esegue i seguenti controlli:
package.jsondependencies che da devDependencies'use server' nei file sorgente'use server' (indica l'uso di Server Function)Lo scanner include un rilevamento intelligente per prevenire i falsi positivi:
output: 'export' vengono contrassegnati come probabilmente sicuri'use server' per confermare l'effettivo utilizzo dei Server ComponentsOutput di esempio:
✓ 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
Per ogni progetto vulnerabile, esegui il comando di correzione suggerito:
cd /path/to/project
npm install [email protected] [email protected] # Example
O con yarn:
yarn upgrade [email protected] [email protected]
O con pnpm:
pnpm update [email protected] [email protected]
npm test
npm run build
node scan.js --ci
R: Attualmente, lo scanner controlla le dipendenze dirette in package.json. Per un'analisi approfondita delle dipendenze, usa npm audit o yarn audit in combinazione con questo strumento.
R: No, React 18 NON è interessato ✅
CVE-2025-55182 interessa solo i Server Components di React 19.x. Lo scanner identificherà correttamente le app React 18 come sicure, anche se usano versioni di Next.js 15.x o 16.x che rientrano nell'intervallo vulnerabile.
R: Sì! Usa il flag --ci per far terminare lo scanner con codice 1 se vengono trovate vulnerabilità, provocando il fallimento della pipeline. Vedi gli esempi di integrazione CI/CD sopra.
R: Mitigazioni temporanee (l'aggiornamento è l'unica soluzione definitiva):
⚠️ Critico: Queste sono solo misure temporanee. Aggiorna alle versioni corrette il prima possibile.
R: Molto accurato con prevenzione intelligente dei falsi positivi:
'use server' per confermare l'effettiva vulnerabilitàR: Lo scanner rileva le direttive 'use server' nei tuoi file sorgente. Tuttavia, le Server Function importate dinamicamente (caricate a runtime tramite import()) potrebbero non essere rilevate staticamente. Se lo scanner segnala "nessuna direttiva 'use server' trovata" ma usi import dinamici per le Server Function, dovresti verificare manualmente quei file. Lo scanner includerà una nota per ricordartelo.
I contributi sono benvenuti! Non esitare a inviare issue o pull request.
# Test on sample projects
./test-scanner.sh
Questo scanner ora rileva tutti i principali framework abilitati a RSC secondo l'avviso ufficiale di React:
Per framework aggiuntivi, apri una issue o invia una PR.
Licenza MIT - consulta il file LICENSE per i dettagli
Questo strumento è fornito così com'è alla comunità per aiutare a identificare i progetti vulnerabili. Verifica sempre i risultati dello scanner e testa gli aggiornamenti in un ambiente sicuro prima di distribuirli in produzione.
Se trovi utile questo strumento, per favore:
Resta al sicuro e mantieni aggiornate le tue dipendenze!