
Uno strumento proof-of-concept per dimostrare la critica vulnerabilità React2Shell
Uno strumento proof-of-concept per dimostrare la critica vulnerabilità React2Shell (CVE-2025-55182 / CVE-2025-66478) esclusivamente su ambienti di test locali autorizzati.
CVE-2025-55182 (React2Shell) è una vulnerabilità critica di Remote Code Execution (RCE) pre-autenticazione nel protocollo "Flight" dei React Server Components (RSC). Un identificatore separato, CVE-2025-66478, è stato assegnato per Next.js ma è stato successivamente rifiutato in quanto duplicato di CVE-2025-55182, poiché entrambi condividono la stessa causa principale.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
La vulnerabilità ha origine in specifici pacchetti React e colpisce qualsiasi framework che li includa.
Non Interessati: Next.js 13.x, le versioni stabili di Next.js 14.x, le applicazioni Pages Router e l'Edge Runtime non sono interessati.
Il protocollo Flight di RSC serializza i dati per la comunicazione client-server. La vulnerabilità risiede nella logica di deserializzazione lato server, che espande in modo non sicuro le proprietà degli oggetti dal payload in arrivo senza un'adeguata validazione. Ciò consente a un attaccante di iniettare chiavi dannose (come __proto__ o constructor) nella richiesta, portando alla prototype pollution.
Una volta inquinata la catena dei prototipi, il server segue percorsi di esecuzione influenzati dall'attaccante. Questo può essere concatenato per eseguire codice JavaScript arbitrario con i privilegi del server, portando alla piena Remote Code Execution (RCE).
I ricercatori di sicurezza hanno osservato exploit riusciti che portano a:
.aws/credentials).La patch è obbligatoria ed è l'unico modo per eliminare completamente la vulnerabilità. Non esiste alcuna impostazione di configurazione per disabilitare il percorso di codice vulnerabile.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
npm install react@latest react-dom@latest
Verifica che i file package-lock.json o yarn.lock riflettano le versioni patchate dei pacchetti react-server-dom-* (19.0.1, 19.1.2 o 19.2.1).
In attesa della patch, implementa regole Web Application Firewall (WAF) per bloccare i tentativi di exploit:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) include regole per questa CVE.cve-canary.Nota: Le regole WAF sono una mitigazione temporanea e incompleta. Non sostituiscono la necessità di applicare la patch.
Esamina i log per questi segni di tentativi di sfruttamento:
next-action o rsc-action-id. Corpi di richiesta contenenti pattern come $@ o "status":"resolved_model".whoami, id, uname), letture di /etc/passwd o scritture di file in /tmp/ (ad es., pwned.txt) da parte di processi Node.js.Questo strumento dimostra una vulnerabilità con un punteggio CVSS di 10.0 (Gravità Massima) attualmente oggetto di sfruttamento attivo sponsorizzato da stati.
Ricorda: Questo strumento dimostra perché la patch è urgente. Usa questa conoscenza per migliorare la sicurezza e difendere i sistemi, non per comprometterli. Assicurati che tutte le tue dipendenze siano aggiornate alle versioni patchate elencate sopra.
TAHA MOUNIR
| Componente | Versioni Affette | Versioni Patchate | Note |
|---|
| Pacchetti React ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | Origine del difetto a monte. |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 e successive | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | Framework principale interessato. |
| Altri Framework | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | Aggiorna a versioni che utilizzano pacchetti React patchati (>19.0.1, 19.1.2, 19.2.1). | Vulnerabile se si utilizzano i pacchetti React interessati. |