Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-55182 — Ricerca di tesi magistrale su CVE-2025-55182 (React2Shell). Framework di sfruttamento modulare con 6 scenari di attacco (RCE, esfiltrazione, defacement), reverse shell interattiva e un laboratorio vulnerabile completo per studiare Prototype Pollution e Insecure Deserialization in React Server Components. | Kitploit
Strumenti/GitHubGitHub/devianntsec/cve-2025-55182
Framework di ExploitAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitPenetration TestingPaper e RicercaApprendimento e FormazioneStrumento di Accesso Remoto
Sviluppo Payload
Lab e Pratica
GitHubdevianntsec/cve-2025-55182

CVE-2025-55182

Vedi Repository
154 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Ricerca di tesi magistrale su CVE-2025-55182 (React2Shell). Framework di sfruttamento modulare con 6 scenari di attacco (RCE, esfiltrazione, defacement), reverse shell interattiva e un laboratorio vulnerabile completo per studiare Prototype Pollution e Insecure Deserialization in React Server Components.

Condividi

CVE-2025-55182 — React2Shell: Exploit Avanzato e Ricerca per Tesi Magistrale

Platform Language License: MIT Research CVSS

Deserializzazione di Dati Non Fidati + Prototype Pollution in React Server Components
Remote Code Execution non autenticata tramite Next.js Server Actions
Affette: React 19.0.0 - 19.2.0 · Patch: React 19.0.1 / 19.1.2 / 19.2.1 (3 dicembre 2025)


Dimostrazione dell'exploit avanzato - comandi RCE di base, shell interattiva e molteplici vettori d'attacco contro un'applicazione Next.js vulnerabile

Descrizione

Questo repository contiene la mia ricerca per la Tesi Magistrale su CVE-2025-55182, una vulnerabilità Remote Code Execution di livello Critico (CVSS v3.1: 10.0) nei React Server Components.

La vulnerabilità ha origine da un meccanismo di deserializzazione non sicuro nel protocollo React Flight. Durante l'elaborazione delle Server Actions, Next.js deserializza i payload multipart in arrivo senza una validazione adeguata. Un attaccante può creare un payload malevolo che inquina la catena dei prototipi e inietta JavaScript arbitrario, il quale viene eseguito sul server tramite il costruttore Function (e successivamente tramite child_process.execSync()).

Nota su CVE-2025-66478: Vercel ha emesso un CVE parallelo per tracciare l'impatto specifico di Next.js di questa stessa vulnerabilità. Poiché Next.js raggruppa React in modo vendored, molti scanner di dipendenze non lo rilevano automaticamente come vulnerabile. Il National Vulnerability Database (NVD) degli Stati Uniti ha ufficialmente respinto CVE-2025-66478 come duplicato di CVE-2025-55182, sebbene continui a essere citato nell'avviso di sicurezza di Vercel.

Vulnerabilità conseguenti: Il team di React ha successivamente divulgato due ulteriori problemi presenti nelle versioni iniziali della patch (19.0.1, 19.1.2, 19.2.1): CVE-2025-55184 (Denial of Service, CVSS 7.5) e CVE-2025-55183 (Esposizione del Codice Sorgente, CVSS 5.3). Gli utenti dovrebbero aggiornare a 19.0.2, 19.1.3 o 19.2.2 per risolvere tutti e tre.

Il Mio Contributo

AspettoDescrizione
Quattro moduli di attaccoEliminare progetti, deturpare il sito, rubare variabili d'ambiente, arrestare i server
Shell interattivaShell persistente con comandi speciali e capacità di ripristino
Esfiltrazione stabileLettura riga per riga per bypassare i limiti di dimensione degli header HTTP
Script di ripristinoRipristino sicuro del laboratorio dopo gli attacchi
Documentazione accademicaCausa principale, analisi del payload e cronologia della vulnerabilità

Struttura del Repository

root@kitploit:~
CVE-2025-55182/
├── README.md                        # Questo file
├── LICENSE                          # Licenza MIT
│
├── exploit/
│   ├── exploit-explanation.md       # Documentazione sull'uso dell'exploit
│   └── react2shell.py               # Exploit principale — 4 moduli di attacco + shell interattiva
│
├── vulnerable-app/                  # Applicazione Next.js vulnerabile
│   ├── README.md                    # Crediti originali dell'app vulnerabile
│   ├── package.json                 # React 19.0.0 (vulnerabile)
│   ├── app/                         # Codice sorgente dell'applicazione
│   ├── curl_id.sh                   # Script exploit originale (di zack0x01)
│   └── scripts/
│       └── restore.sh               # Script di ripristino (mio contributo)
│
└── docs/
    ├── screenshots/                 # Dimostrazioni dello sfruttamento
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Analisi della causa principale della vulnerabilità
        ├── 02-payload-breakdown.md  # Struttura del payload e flusso di esecuzione
        └── 03-timeline.md           # Cronologia del CVE

Avvio Rapido

Prerequisiti

  • Node.js 18+ e npm
  • Python 3.9+
  • Applicazione Next.js vulnerabile (fornita in vulnerable-app/)
  • VM isolata consigliata per i test

Passo 1 — Avvia l'applicazione vulnerabile

root@kitploit:~
cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App disponibile su http://localhost:3000

Passo 2 — Esegui l'exploit

root@kitploit:~
cd ../exploit

# Verifica se il target è vulnerabile
python3 react2shell.py -u http://localhost:3000 --check

# Esegui un singolo comando
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Modalità shell interattiva
python3 react2shell.py -u http://localhost:3000 -i

Moduli di Attacco

ModuloComandoDescrizioneImpatto
Elimina Progetti--delete-projectsElimina tutti i progetti dalla dashboardDistruzione dei dati
Deturpa--deface "messaggio"Sostituisce la pagina principaleDeturpamento
Rubo Ambiente--steal-envRuba le variabili d'ambienteEsfiltrazione
Arresta Server--shutdown-serversArresta tutti i serverDenial of Service

Panoramica Tecnica

Causa Principale della Vulnerabilità

React Server Components utilizzano un meccanismo personalizzato di serializzazione/deserializzazione (il protocollo "Flight") per inviare dati dei componenti dal server al client. Quando elabora le server actions, il server deserializza i payload in arrivo senza una validazione adeguata.

Il difetto principale è la fiducia comportamentale: il deserializzatore controlla typeof obj.then === 'function' per identificare le Promise, senza verificare che la proprietà appartenga direttamente all'oggetto. Ciò consente a un attaccante di avvelenare Object.prototype.then, facendo apparire ogni oggetto semplice come un thenable.

Un attaccante può creare un payload malevolo che:

  1. Inquina la catena dei prototipi usando __proto__:then
  2. Reindirizza la risoluzione al costruttore Function tramite $1:constructor:constructor
  3. Esegue JavaScript arbitrario tramite new Function(_prefix)
  4. Esegue comandi di sistema tramite process.mainModule.require('child_process').execSync()
  5. Esfiltra l'output attraverso l'header di risposta HTTP X-Action-Redirect
root@kitploit:~
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

Chiarimento sull'Ambito

La vulnerabilità colpisce qualsiasi applicazione Next.js che utilizza App Router con React Server Components — la configurazione predefinita da Next.js 14 in poi. Le Server Actions definite esplicitamente non sono richieste; la semplice presenza dei pacchetti RSC interessati è sufficiente.

Perché è Importante

Questa vulnerabilità consente a un attaccante non autenticato di:

  • Eseguire comandi arbitrari sul server
  • Rubare variabili d'ambiente e credenziali
  • Modificare o eliminare dati dell'applicazione
  • Utilizzare il server come punto di pivot per ulteriori attacchi

Catena di Attacco

root@kitploit:~
1. [ANY]    Send crafted multipart POST to any Server Action endpoint
2. [SERVER] React deserializer processes malicious JSON
3. [SERVER] Prototype pollution poisons Object.prototype.then
4. [SERVER] Plain object treated as thenable; Function constructor reached
5. [SERVER] new Function(_prefix) executes attacker's arbitrary JavaScript
6. [SERVER] execSync() runs system command; output captured
7. [SERVER] Output embedded in NEXT_REDIRECT error digest
8. [SERVER] Next.js returns X-Action-Redirect header with URL-encoded output
9. [ATTACKER] Extract and URL-decode command result from header

Test Empirici

Tutti i test sono stati condotti su una VM VirtualBox isolata con Kali Linux 2026.1, Next.js 15.0.0 e React 19.0.0, senza esposizione di rete.

Modulo di AttaccoRisultatoNote
Esecuzione comandi✅ RCE confermatawhoami, id, uname -a funzionano in modo affidabile
Elimina progetti✅ Dashboard modificataProgetti rimossi, struttura React preservata
Deturpa✅ Sito deturpatoMessaggio personalizzato visualizzato
Rubo ambiente✅ Variabili d'ambiente estratteSalvate in stolen_env.txt
Arresta server✅ Tutti i server mostrati come fermatiUI aggiornata, React funzionale
Shell interattiva✅ Shell persistenteComandi speciali disponibili
Ripristino✅ Stato originale ripristinatoTramite script restore.sh

Determinismo: A differenza degli exploit probabilistici (es. heap spray), CVE-2025-55182 è completamente deterministico — qualsiasi richiesta HTTP POST correttamente formattata produce RCE con probabilità 1 su qualsiasi sistema non patchato che esegue React 19.0.0–19.2.0 con React Server Components abilitati.


Documentazione Tecnica

DocumentoDescrizione
Analisi della Causa PrincipaleDifetto di deserializzazione e prototype pollution in React Flight
Analisi del PayloadAnalisi riga per riga della struttura JSON malevola
Cronologia del CVEScoperta, divulgazione e cronologia delle patch

Contesto Accademico

Questa ricerca fa parte della mia Tesi Magistrale in Cybersecurity (UCAM — Campus Internacional de Ciberseguridad), analizzando vulnerabilità N-Day in molteplici ambienti.

Questo CVE rappresenta il vettore moderno dei framework JavaScript all'interno della tesi, dimostrando:

  • Vulnerabilità di deserializzazione in React Server Components
  • Prototype pollution come primitiva per RCE
  • Sfruttamento delle Next.js Server Actions
  • Tecniche post-sfruttamento in ambienti Node.js
  • Metodologie di ripristino sicuro del laboratorio

Parole chiave: RCE · Prototype Pollution · Deserializzazione · React · Next.js · Server Actions · CVE-2025-55182


Autore

Annais Molina (devianntsec) — Ricercatrice di Sicurezza | Master in Cybersecurity (UCAM)

GitHub LinkedIn Blog Email


Riconoscimenti

  • @zack0x01 — Applicazione vulnerabile originale
  • Lachlan Davidson (Carapace) — Scoperta originale della vulnerabilità e divulgazione responsabile
  • AssetNote — Strumento di rilevamento react2shell-scanner
  • Moritz Sanft — Primo PoC pubblico funzionante (~30h dopo la divulgazione)
  • maple3142 — PoC pubblico del reporter originale (5 dicembre 2025)

Licenza

Licenza MIT — consultare LICENSE


Disclaimer Legale

Questo repository è fornito solo a scopo educativo e di ricerca sulla sicurezza, come parte di una Tesi Magistrale accademica. Tutti i test sono stati eseguiti su macchine virtuali isolate senza esposizione di rete. Utilizzare solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta per testare. L'uso non autorizzato contro sistemi è illegale e può portare a procedimenti penali.

© 2026 Annais Molina · Tesi Magistrale in Cybersecurity
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Scarica lo strumento