
CVE-2025-55182를 위한 격리형 Docker 랩 및 정적 스캐너로, 취약/패치된 Next.js 빌드와 RSC Flight 역직렬화의 PoC 검증을 포함합니다.
고지 사항: 이 저장소와 PoC 산출물은 격리된 랩 환경 내에서 교육, 연구 및 방어적 보안 시연 목적으로만 제작되었습니다. 외부 시스템에 대한 허가되지 않은 테스트는 엄격히 금지됩니다.
이 저장소는 React Server Components(RSC) Flight 프로토콜 역직렬화 취약점(일반적으로 React2Shell / CVE-2025-55182로 지칭)에 대한 완화 조치를 분석, 악용 및 검증하도록 설계된 재현 가능한 이중 컨테이너 Docker 환경을 제공합니다. 이 랩은 패치되지 않은 Next.js 빌드에서 사후 악용(post-exploitation) 영향을 시연하고, 패치된 빌드에서 완화 효과를 입증합니다.
http://127.0.0.1:3001 (react2shell-vulnerable 컨테이너)http://127.0.0.1:3002 (react2shell-patched 컨테이너)internal: true) 프라이빗 Docker 브리지 네트워크 내에서 실행됩니다.127.0.0.1(localhost)에 엄격히 바인딩됩니다.DUMMY_SECRET=LAB_VULNERABLE_SECRET_DO_NOT_USE_12345)이 유출 테스트에 사용됩니다.24.0.0+, Compose v2.20.0+)3.8+ — 기본 자동화에는 표준 라이브러리만 사용)저장소를 클론하고 로컬 환경을 확인합니다:
git clone https://github.com/PhanHoangKhang/React2Shell.git
lab/ 디렉터리로 이동하여 두 개의 이중 빌드 컨테이너를 모두 초기화합니다:
cd lab
docker-compose up -d --build
cd ..
두 랩 모두에서 탐지 스캐너를 실행합니다:
python src/react2shell_scanner.py lab/patched
python src/react2shell_scanner.py lab/vulnerable
cd lab
docker-compose stop
cd ..
익스플로잇 검증 테스트를 실행하고 유출 산출물을 확인하려면 자세한 단계별 PoC 가이드를 참조하세요:
👉 PoC 및 취약점 검증 가이드 보기 (poc_reference.md)
package-lock.json(v3 형식). 정적 스캐너는 정확한 탐지를 위해 packages["node_modules/next"] 내부의 해석된(resolved) 종속성 트리 파싱을 우선적으로 수행합니다.< 15.0.3 버전(15.0.0-rc 빌드 포함)을 RSC Flight 프로토콜 역직렬화에 취약한 것으로 표시합니다.| 대상 서비스 | 프레임워크/패키지 | 설치 버전 | Lockfile 형식 |
|---|
취약한 대상 (:3001) | Next.js | 15.0.0-rc.1 | package-lock.json (Lockfile 버전 3) |
| React / React-DOM | 19.0.0-rc-65a56d0e-20241020 | NPM 레지스트리 릴리스 | |
패치된 대상 (:3002) | Next.js | 15.0.3 (안정 버전) | package-lock.json (Lockfile 버전 3) |
| React / React-DOM | 19.0.0 (안정 버전) | NPM 레지스트리 릴리스 |