
React2Shell Scanner (CVE-2025-55182 & CVE-2025-66478)
CVE-2025-55182(React) 및 CVE-2025-66478(Next.js)의 영향을 받는 취약한 React Server Components(RSC) 구현을 식별하기 위한 비간섭 탐지 도구입니다. 이 도구는 유해한 코드를 실행하지 않고 서버가 취약한지 여부를 확인하기 위해 무해하고 악성이 아닌 페이로드를 사용하여 능동 탐지를 수행합니다.
CVE-2025-55182 및 CVE-2025-66478은 React Server Components "Flight" 프로토콜의 심각한 인증되지 않은 원격 코드 실행(RCE) 취약점입니다. 이러한 취약점의 영향:
react-server-dom 버전 19.0.0, 19.1.0, 19.1.1, 19.2.0이 취약점은 RSC 페이로드 처리 로직의 안전하지 않은 역직렬화에서 비롯되며, 공격자가 제어하는 데이터가 서버 측 실행에 영향을 미칠 수 있게 합니다. 기본 구성도 취약합니다 - create-next-app으로 생성된 표준 Next.js 앱은 코드 변경 없이도 악용될 수 있습니다.
이 도구는 다음을 통해 능동 취약점 탐지를 수행합니다:
이 도구는 세 가지 탐지 방법을 사용합니다:
loadServerReference 코드 경로 테스트arrayBuffer 코드 경로 테스트중요: 이 도구는 악성 코드를 실행하지 않습니다. 서버의 취약 상태를 드러내는 오류 응답을 유발하도록 신중하게 제작된 무해한 페이로드만 전송합니다.
python react2shell_scanner.py --target https://example.com
python react2shell_scanner.py --target https://example.com --action-id YOUR_ACTION_ID
python react2shell_scanner.py --target https://example.com --verbose
| 인수 | 필수 | 기본값 | 설명 |
|---|---|---|---|
--target | 예 | - | 확인할 대상 URL(http:// 또는 https://로 시작해야 함) |
--action-id | 아니요 | c67c4e1a40fcc26b5e3c0d5d17f16786f4244989 | 페이로드에 사용할 Action ID |
--verbose, -v | 아니요 | False | 응답 본문을 표시하는 상세 출력 활성화 |
[+] CVE-2025-55182 및 CVE-2025-66478 취약점 검사기
[*] 대상: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] 테스트 1: $F(서버 참조) 페이로드 전송 중...
상태: 500, 증거: workers
[*] 테스트 2: $L(지연) 페이로드 전송 중...
상태: 500, 증거: arraybuffer
[+] 결과:
[!] 상태: 취약할 가능성 높음
[!] 신뢰도: 높음
[!] 증거: workers
[!] 세부 정보: 서버가 loadServerReference에 도달함(Flight $F 역직렬화 우회)
[!] 권장 사항: 패치된 버전으로 업그레이드하세요
======================================================================
[+] CVE-2025-55182 및 CVE-2025-66478 취약점 검사기
[*] 대상: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] 테스트 1: $F(서버 참조) 페이로드 전송 중...
상태: 500, 증거: could not find the module
[*] 테스트 2: $L(지연) 페이로드 전송 중...
상태: 500, 증거: in the react server manifest
[+] 결과:
[+] 상태: 취약하지 않을 가능성 높음
[+] 신뢰도: 높음
[+] 증거: could not find the module
[+] 세부 정보: 서버가 보안 오류로 페이로드를 거부함(패치됨)
======================================================================
이 도구는 취약점을 나타내는 다음 오류 패턴을 찾습니다:
workers - 서버가 loadServerReference에 도달함(높은 신뢰도)arraybuffer - 서버가 $L 유형 핸들러에 도달함(높은 신뢰도)cannot read properties of null (reading 'id') - 서버가 null 메타데이터로 loadServerReference에 도달함(높은 신뢰도)entries - 서버 작업이 FormData 대신 역직렬화된 객체를 수신함(중간 신뢰도)temporary client reference - 서버가 $T 유형 참조를 처리함(중간 신뢰도)다음 오류 패턴은 서버가 패치되었음을 나타냅니다:
could not find the modulein the react server manifestInvalid server referenceServer reference not foundUnexpected tokenis probably a bug in the react server components bundler| 제품 | 취약한 버전 | 패치된 버전 |
|---|---|---|
react-server-dom | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary, 15.x, 16.x(App Router) | 14.3.0-canary.88, 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
RSC를 사용하는 다른 프레임워크도 영향을 받을 수 있습니다:
즉시 조치 필요: 패치된 버전으로 업그레이드하세요:
react-server-dom 19.0.1, 19.1.2 또는 19.2.1로 업그레이드react-server 버전 관련 업데이트는 공식 채널을 확인하세요이 도구는 방어적 보안 테스트 및 취약점 평가를 위해 설계되었습니다. 악성 코드를 실행하지 않는 무해한 페이로드만 사용합니다. 그러나:
이 도구는 보증 없이 "있는 그대로" 제공됩니다. 저자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다. 시스템을 테스트하기 전에 항상 적절한 권한이 있는지 확인하세요.