
Laboratorio di ricerca sulla sicurezza per CVE-2025-55183 e CVE-2025-55184 in React Server Components
Un ambiente completo di test di sicurezza per le vulnerabilità CVE-2025-55183 (Esposizione del codice sorgente) e CVE-2025-55184 (Denial of Service) in React Server Components.
SOLO PER SCOPI EDUCATIVI E DI RICERCA SULLA SICUREZZA
Questo repository contiene applicazioni deliberatamente vulnerabili e strumenti di sfruttamento. Esegui test solo su sistemi di tua proprietà o per i quali hai un'esplicita autorizzazione scritta. I test non autorizzati sono illegali e non etici.
Entrambe le vulnerabilità interessano le versioni di React Server Components dalla 19.0.0 alla 19.2.2, divulgate l'11 dicembre 2025.
| Proprietà | Valore |
|---|---|
| Gravità | Media (CVSS 5.3) |
| Tipo | Divulgazione di informazioni |
| Impatto |
Gli attaccanti possono manipolare gli argomenti delle Server Action per divulgare codice sorgente riservato al server chiamando .toString() sugli oggetti delle funzioni server. Questo espone:
| Proprietà | Valore |
|---|---|
| Gravità | Alta (CVSS 7.5) |
| Tipo | Denial of Service |
| Impatto | Interruzione completa del servizio |
Payload appositamente costruiti creano una ricorsione infinita di promise, causando il blocco indefinito del server Node.js. Risultato:
TL;DR: L'app È vulnerabile (React 19.0.0), ma le protezioni moderne potrebbero impedire il crash effettivo in questo ambiente demo.
CVE-2025-55184 è una vulnerabilità REALE e CRITICA che interessa React 19.0.0-19.2.2 negli ambienti di produzione. Tuttavia, dimostrare con successo il crash DoS in una demo locale può essere difficile a causa di:
Anche se l'exploit non causa il crash della demo, puoi verificare la vulnerabilità tramite:
cd vulnerable-app
npm list react react-dom
# Output shows:
[email protected] ← VULNERABLE VERSION
[email protected] ← VULNERABLE VERSION
Se vedi versioni dalla 19.0.0 alla 19.2.2, l'applicazione È vulnerabile.
cd scanner
python scan.py http://localhost:3000
Lo scanner verifica:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# Start the app (vulnerable to both CVEs)
docker-compose up --build -d
# App available at: http://localhost:3000
cd scanner
# Install dependencies
pip install -r requirements.txt
# Scan for both vulnerabilities
python scan.py http://localhost:3000
# Scan only CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000
# Scan only CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000
# Scan multiple targets
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # This file
├── DOCUMENTATION.md # Complete technical documentation
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # Vulnerable to BOTH CVEs
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # Vulnerable server actions
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # Scanner for both CVEs
│ └── README.md
│
└── exploits/
├── exploit-55183.py # PoC for CVE-2025-55183
├── exploit-55184.py # PoC for CVE-2025-55184
└── README.md
L'applicazione è un'app Next.js che esegue React 19.0.0 con Server Actions, vulnerabile a entrambe le CVE.
# Using Docker Compose (recommended)
docker-compose up --build -d
# Check if running
curl http://localhost:3000
# View logs
docker-compose logs -f
# Stop the app
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
Lo scanner unificato rileva sia CVE-2025-55183 sia CVE-2025-55184.
cd scanner
# Scan for both CVEs
python scan.py http://localhost:3000
# Scan specific CVE only
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# Verbose output
python scan.py --verbose http://localhost:3000
# Custom timeout
python scan.py --timeout 10 http://example.com
# Scan multiple URLs from file
python scan.py --file targets.txt
# Save results to JSON
python scan.py --output results.json http://localhost:3000
# Disable SSL verification
python scan.py --no-verify https://self-signed.example.com
# Scan all CVEs with verbose output and save results
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ React Server Components Vulnerability Scanner ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing http://localhost:3000
[CVE-2025-55183] Source Code Exposure
[!] VULNERABLE: Source code leaked
Exposed Functions: 3
Code Length: 1247 characters
Contains Secrets: ✓ (API keys found)
[CVE-2025-55184] Denial of Service
[!] VULNERABLE: DoS attack successful
Status Code: 404
Content-Type: text/plain
Markers Found: ✓
============================================================
SUMMARY
============================================================
Total tested: 1
CVE-2025-55183 vulnerable: 1
CVE-2025-55184 vulnerable: 1
Both CVEs vulnerable: 1
Not vulnerable: 0
Per un'analisi tecnica completa di entrambe le vulnerabilità:
DOCUMENTATION.md - Documentazione tecnica completa che copre:
Entrambe le vulnerabilità sono risolte nelle stesse versioni di patch:
Aggiorna React a una versione patchata:
npm install [email protected] [email protected]
# or
npm install react@latest react-dom@latest
Aggiorna Next.js (se applicabile):
npm install next@latest
Verifica la correzione:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
# Run scanner to confirm fixes
cd scanner
python scan.py http://your-patched-app.com
# Expected output:
# [+] CVE-2025-55183: NOT VULNERABLE
# [+] CVE-2025-55184: NOT VULNERABLE
I contributi sono benvenuti! Aree di miglioramento:
Non esitare a inviare una Pull Request.
Questo progetto è concesso in licenza sotto la MIT License - consulta il file LICENSE per i dettagli.
Se trovi utile questo repository per la tua ricerca sulla sicurezza, prendi in considerazione l'idea di mettere una stella!
| Esposizione del codice sorgente del server |
| Autenticazione | Non richiesta |
| Autenticazione | Non richiesta |
| Aspetto | CVE-2025-55183 | CVE-2025-55184 |
|---|
| Gravità | Media | Alta |
| Tipo | Divulgazione di informazioni | Denial of Service |
| Impatto | Fuga del codice sorgente | Crash del server |
| Rilevamento | La risposta contiene codice | Timeout/blocco del server |
| Ripristino | Immediato | Richiede riavvio |
| Pacchetto | Versioni Vulnerabili | Versioni Patchate |
|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |