
Laboratorio didattico che dimostra la CVE-2025-55182: RCE critica nei React Server Components tramite prototype pollution nel protocollo Flight.
Lab didattico che dimostra CVE-2025-55182 — una vulnerabilità critica (CVSS 10.0) di Remote Code Execution nei React Server Components causata da prototype pollution nel deserializzatore del protocollo Flight.
Disclaimer: Questo repository è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza autorizzata. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità per un uso improprio di questo materiale. Utilizzalo solo contro sistemi di tua proprietà o per cui hai esplicita autorizzazione scritta al test. Usando questo codice, accetti di essere responsabile delle tue azioni.
# 1. Clona
git clone https://github.com/Jeanback1/react-rsc-cve-2025-55182-lab.git
cd react-rsc-cve-2025-55182-lab
# 2. Avvia il lab (istanze vulnerabile + patchata)
docker compose up -d
# Attendi circa 2 minuti affinché entrambi i container vengano costruiti e avviati.
# 3. Sfrutta l'istanza vulnerabile
python exploit/exploit.py http://localhost:3011 id
# 4. Riprova contro l'istanza patchata — fallisce
python exploit/exploit.py http://localhost:3012 id
docker compose
┌────────────────────────────────┐
│ │
attacker ────▶│ :3011 → rsc-lab-vulnerable │ React 19.2.0
│ (Server Action) │ ← sfruttabile
│ │
│ :3012 → rsc-lab-patched │ React 19.2.1
│ (no Server Action) │ ← patchato
└────────────────────────────────┘
| Container | Porta | Versione React | Server Action | Vulnerabile? |
|---|---|---|---|---|
rsc-lab-vulnerable | 3011 | 19.2.0 | Sì | Sì |
rsc-lab-patched | 3012 | 19.2.1 | No | No |
requests (pip install requests)├── docker-compose.yml # Orchestrazione del lab
├── README.md # Questo file
├── LICENSE
│
├── vulnerable/ # App Next.js vulnerabile
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ ├── page.tsx # Server Component + Server Action
│ └── actions.ts # 'use server' — la superficie d'attacco
│
├── patched/ # App Next.js patchata
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ └── page.tsx # Solo Server Component (nessuna Server Action)
│
├── exploit/
│ ├── exploit.py # Exploit RCE didattico (ben commentato)
│ ├── requirements.txt
│ └── pyproject.toml
│
└── docs/
└── CVE-2025-55182.md # Analisi tecnica completa
# Esecuzione di un singolo comando
python exploit/exploit.py <target> <command>
# Esempi
python exploit/exploit.py http://localhost:3011 id
python exploit/exploit.py http://localhost:3011 "cat /etc/passwd"
python exploit/exploit.py http://localhost:3011 "ls -la /app"
L'exploit funziona in tre fasi:
__proto__ → inquina Object.prototype.thenmultipart/form-data tramite l'endpoint Server ActionX-Action-Redirect (codificato in base64)| Pacchetto | Vulnerabile | Patchato |
|---|---|---|
react | ≤ 19.2.0 | ≥ 19.2.1 |
react-dom | ≤ 19.2.0 | ≥ 19.2.1 |
react-server-dom-webpack | ≤ 19.2.0 | ≥ 19.2.1 |
Consulta docs/CVE-2025-55182.md per un'analisi completa:
__proto__ è pericolosa