
React Server Components의 CVE-2025-55183 및 CVE-2025-55184를 위한 보안 연구 랩
CVE-2025-55183(소스 코드 노출) 및 CVE-2025-55184(서비스 거부) 취약점에 대한 종합적인 보안 테스트 환경입니다.
교육 및 보안 연구 목적으로만 사용하세요
이 저장소는 의도적으로 취약하게 만든 애플리케이션과 익스플로잇 도구를 포함하고 있습니다. 자신이 소유하거나 명시적인 서면 허가를 받은 시스템에서만 테스트하세요. 무단 테스트는 불법이며 비윤리적입니다.
두 취약점 모두 2025년 12월 11일에 공개된 React Server Components 버전 19.0.0~19.2.2에 영향을 미칩니다.
| 속성 | 값 |
|---|---|
| 심각도 | 중간 (CVSS 5.3) |
| 유형 | 정보 노출 |
| 영향 | 서버 소스 코드 노출 |
| 인증 | 필요 없음 |
공격자는 서버 함수 객체에 대해 .toString()을 호출하여 Server Action 인수를 강제로 서버 전용 소스 코드를 유출시킬 수 있습니다. 이로 인해 다음이 노출됩니다:
| 속성 | 값 |
|---|---|
| 심각도 | 높음 (CVSS 7.5) |
| 유형 | 서비스 거부 |
| 영향 | 완전한 서비스 중단 |
| 인증 | 필요 없음 |
특수하게 제작된 페이로드가 무한 Promise 재귀를 생성하여 Node.js 서버를 무기한 중단시킵니다. 결과:
요약: 앱은 취약합니다(React 19.0.0). 하지만 현대적인 보호 조치로 인해 이 데모 환경에서는 실제 충돌이 발생하지 않을 수 있습니다.
CVE-2025-55184는 프로덕션 환경에서 React 19.0.0~19.2.2에 영향을 미치는 실제이며 심각한 취약점입니다. 그러나 로컬 데모에서 DoS 충돌을 성공적으로 시연하는 것은 다음과 같은 이유로 어려울 수 있습니다:
익스플로잇이 데모를 충돌시키지 않더라도 다음 방법으로 취약점을 확인할 수 있습니다:
cd vulnerable-app
npm list react react-dom
# 출력 결과:
[email protected] ← 취약한 버전
[email protected] ← 취약한 버전
19.0.0부터 19.2.2까지 표시되면 애플리케이션이 취약한 것입니다.
cd scanner
python scan.py http://localhost:3000
스캐너가 확인하는 항목:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# 앱 시작 (두 CVE에 모두 취약)
docker-compose up --build -d
# 앱 접속: http://localhost:3000
cd scanner
# 의존성 설치
pip install -r requirements.txt
# 두 취약점 모두 스캔
python scan.py http://localhost:3000
# CVE-2025-55183만 스캔
python scan.py --cve 55183 http://localhost:3000
# CVE-2025-55184만 스캔
python scan.py --cve 55184 http://localhost:3000
# 여러 대상 스캔
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # 이 파일
├── DOCUMENTATION.md # 전체 기술 문서
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # 두 CVE에 모두 취약
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # 취약한 서버 액션
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # 두 CVE용 스캐너
│ └── README.md
│
└── exploits/
├── exploit-55183.py # CVE-2025-55183 PoC
├── exploit-55184.py # CVE-2025-55184 PoC
└── README.md
이 애플리케이션은 React 19.0.0과 Server Actions를 사용하는 Next.js 앱으로, 두 CVE에 모두 취약합니다.
# Docker Compose 사용 (권장)
docker-compose up --build -d
# 실행 확인
curl http://localhost:3000
# 로그 보기
docker-compose logs -f
# 앱 중지
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
통합 스캐너는 CVE-2025-55183과 CVE-2025-55184를 모두 탐지합니다.
cd scanner
# 두 CVE 모두 스캔
python scan.py http://localhost:3000
# 특정 CVE만 스캔
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# 상세 출력
python scan.py --verbose http://localhost:3000
# 사용자 정의 타임아웃
python scan.py --timeout 10 http://example.com
# 파일에서 여러 URL 스캔
python scan.py --file targets.txt
# 결과를 JSON으로 저장
python scan.py --output results.json http://localhost:3000
# SSL 검증 비활성화
python scan.py --no-verify https://self-signed.example.com
# 모든 CVE 스캔 (상세 출력 및 결과 저장)
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ React Server Components 취약점 스캐너 ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] http://localhost:3000 테스트 중
[CVE-2025-55183] 소스 코드 노출
[!] 취약: 소스 코드 유출됨
노출된 함수: 3
코드 길이: 1247자
비밀 포함: ✓ (API 키 발견됨)
[CVE-2025-55184] 서비스 거부
[!] 취약: DoS 공격 성공
상태 코드: 404
Content-Type: text/plain
마커 발견: ✓
============================================================
요약
============================================================
총 테스트: 1
CVE-2025-55183 취약: 1
CVE-2025-55184 취약: 1
두 CVE 모두 취약: 1
취약하지 않음: 0
두 취약점에 대한 포괄적인 기술 분석은 다음 문서를 참조하십시오:
DOCUMENTATION.md - 전체 기술 문서:
두 취약점 모두 동일한 패치 버전에서 수정되었습니다:
React 업데이트 (패치된 버전으로):
npm install [email protected] [email protected]
# 또는
npm install react@latest react-dom@latest
Next.js 업데이트 (해당 시):
npm install next@latest
수정 확인:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
# 스캐너를 실행하여 수정 확인
cd scanner
python scan.py http://your-patched-app.com
# 예상 출력:
# [+] CVE-2025-55183: 취약하지 않음
# [+] CVE-2025-55184: 취약하지 않음
기여를 환영합니다! 개선할 부분:
Pull Request를 자유롭게 제출해 주세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
이 저장소가 보안 연구에 도움이 된다면 별표를 눌러 주시기 바랍니다!
| 측면 | CVE-2025-55183 | CVE-2025-55184 |
|---|
| 심각도 | 중간 | 높음 |
| 유형 | 정보 노출 | 서비스 거부 |
| 영향 | 소스 코드 유출 | 서버 다운 |
| 탐지 | 응답에 코드 포함 | 서버 타임아웃/중단 |
| 복구 | 즉시 가능 | 재시작 필요 |
| 패키지 | 취약한 버전 | 패치된 버전 |
|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |