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
React2Shell — La mia ricerca su CVE-2025-55182 | Kitploit
Strumenti/GitHubGitHub/i3r1h0n/react2shell
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSviluppo Payload
GitHubi3r1h0n/react2shell

React2Shell

La mia ricerca su CVE-2025-55182

Vedi Repository
9 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 →
Condividi

React2Shell (CVE-2025-55182)

Panoramica

Questo repository contiene la mia ricerca sulla CVE-2025-55182, nota anche come vulnerabilità React2Shell. Il repo è composto da due parti principali: stand ed exploit.

Riferimenti

Alcune informazioni su questa falla di sicurezza:

  • NIST
  • Articolo di HackerOne
  • Riepilogo di Vercel
  • Articolo di WIZ
  • Pagina web dell'autore
  • PoC originale

Causa principale

La vulnerabilità è fondamentalmente una mancanza di validazione dell'input utente. Ma non è così semplice =)

La parte React Client e la parte React Server utilizzano il React Flight Protocol per scambiare dati. Ecco un buon talk a riguardo, per familiarizzare velocemente.

Esempio di chunk di messaggi del React Flight Protocol:

root@kitploit:~
{
    "0": (None, '["$1"]'),
    "1": (None, '{"object":"fruit","name":"$2:fruitName"}'),
    "2": (None, '{"fruitName":"cherry"}'),
}
Scarica lo strumento

I chunk del RFP possono riferirsi l'uno all'altro utilizzando l'operatore $. Quando i chunk vengono successivamente deserializzati sul server, questi collegamenti vengono risolti. Una cosa fondamentale è che possiamo accedere al prototipo dell'oggetto da essi.

Manipolando il prototipo, possiamo forzare V8 ad attendere il nostro .then(). Il payload risultante potrebbe assomigliare a questo:

root@kitploit:~
{
    "then": "$1:__proto__:then",
    "status": "resolved_model",
    "reason": -1,
    "value": '{"then": "$B0"}',
    "_response": {
        "_prefix": f"return foo; ",
        "_formData": {
            "get": "$1:constructor:constructor",
        },
    },
}

Non entrerò troppo nei dettagli di come funziona effettivamente questa catena di gadget, se vuoi saperne di più, leggi un'ottima analisi qui di Moritz Sanft.

Puoi anche vedere il confronto delle versioni su GitHub, prima e dopo la patch, se vuoi approfondire questa falla.

Stand

Ho creato una semplice app react/next.js, che utilizza (vedi stand/package.json):

root@kitploit:~
"dependencies": {
  "next": "16.0.6",
  "react": "19.2.0",
  "react-dom": "19.2.0"
},

Solo una semplice pagina con contenuto testuale, creata con create-next-app:

Per avviare, esegui questo nella directory stand:

root@kitploit:~
docker compose up --build -d

Quindi naviga su http://localhost:3000 nel tuo browser.

Exploit

Lo sfruttamento è semplice. Dobbiamo solo inviare dei chunk RFP appositamente costruiti con il nostro payload al server tramite una richiesta POST. Vedi exploit/src/main.py. Include anche un semplice controllo per verificare se il server è vulnerabile o meno: prova a eseguire un comando whoami, se il timeout viene superato, il server molto probabilmente utilizza una versione patchata.

Puoi vedere il payload RFP in exploit/resource/chunk.json.

Prima di eseguire l'exploit, non dimenticare di configurare un listener netcat e aggiornare il file exploit/resource/config.toml con il tuo host e porta, per ottenere una reverse shell.

Buon pwn!

Crediti

Un grande ringraziamento a Lachlan Davidson, che ha scoperto la vulnerabilità, maple, che ha trovato un buon gadget, e anche Moritz Sanft, che ha condiviso il suo PoC e ha scritto un'ottima analisi.

prodotto da I3r1h0n.