Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
1145 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

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

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

Passo 2 — Esegui l'exploit

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
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

Scarica lo strumento