Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 | Kitploit
도구/GitHubGitHub/tinashelorenzi/cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingIntrusion DetectionLearning & EducationRed TeamingPayload DevelopmentLabs & Practice
GitHubtinashelorenzi/cve-2025-55182

CVE-2025-55182

저장소 보기
8개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

React2Shell (CVE-2025-55182) - 개념 증명(PoC)

CVSS 점수 10.0에 해당하는 React Server Components에 영향을 미치는 치명적인 원격 코드 실행 취약점인 CVE-2025-55182에 대한 포괄적인 개념 증명 익스플로잇 및 교육용 자료입니다.

Python Version License CVSS

법적 고지

교육 및 승인된 테스트 목적으로만 사용

이 도구는 교육 목적과 승인된 보안 테스트를 위해서만 제공됩니다. 승인되지 않은 컴퓨터 시스템 접근은 미국의 컴퓨터 사기 및 남용법(CFAA)을 비롯한 각종 법률과 전 세계의 유사한 법률에 따라 불법입니다.

사용자는 반드시:

  • 본인 소유이거나 테스트에 대한 명시적인 서면 승인을 받은 시스템에서만 이 도구를 사용해야 합니다.
  • 적용 가능한 모든 지방, 주, 연방 법률을 준수해야 합니다.
  • 이 도구를 책임감 있고 윤리적으로 사용해야 합니다.

저자 및 기여자:

  • 이 도구의 오용이나 손해에 대해 책임을 지지 않습니다.
  • 승인되지 않은 컴퓨터 시스템 접근을 지지하거나 조장하지 않습니다.
  • 이 도구를 교육 및 방어적 보안 목적으로만 엄격히 제공합니다.

이 도구를 사용함으로써 귀하는 본 약관을 이해하고 이에 동의함을 인정합니다.

📋 목차

  • 개요
  • 취약점 세부 정보
  • 영향을 받는 버전
  • 기술 분석
  • 설치
  • 사용법
  • 탐지
  • 해결 방법
  • 실습 환경 구성
  • 참고 자료
  • 기여
  • 작성자

🎯 개요

React2Shell은 2025년 12월에 발견된 치명적인 취약점으로, React Server Components(RSC) 및 이를 구현하는 프레임워크, 특히 Next.js에 영향을 미칩니다. 이 취약점은 단일하게 조작된 HTTP 요청을 통해 인증되지 않은 원격 코드 실행을 가능하게 합니다.

이 저장소에는 다음이 포함되어 있습니다:

  • ✅ 자동화된 Python 익스플로잇 스크립트
  • ✅ 상세한 기술 분석
  • ✅ 탐지 규칙(Snort, OSQuery)
  • ✅ 실습 환경 구성 가이드
  • ✅ 포괄적인 문서

🔍 취약점 세부 정보

무엇이 이 취약점을 치명적으로 만드는가?

  1. 인증 불필요 - 인증되지 않은 모든 공격자가 악용 가능
  2. 기본 구성도 취약 - create-next-app으로 생성된 표준 Next.js 앱도 악용 가능
  3. 높은 신뢰성 - 거의 100%에 달하는 악용 성공률
  4. 넓은 공격 표면 - React 컴포넌트를 실행하는 571,000개 이상의 공개 서버(Shodan 데이터)
  5. 심각한 영향 - Node.js 프로세스 권한으로 완전한 원격 코드 실행

📦 영향을 받는 버전

React Server Components

취약한 버전:

  • react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0

패치된 버전:

  • React 19.0.1
  • React 19.1.2
  • React 19.2.1

Next.js

취약한 버전:

  • 14.3.0-canary.77 이상의 모든 버전
  • 모든 15.x 릴리스(패치 전)
  • 모든 16.x 릴리스(패치 전)

패치된 버전:

  • React 패치가 포함된 업데이트 버전은 Next.js 릴리스에서 확인하세요.

기타 영향을 받는 프레임워크

  • React Router(RSC 모드 사용 시)
  • Waku
  • Redwood SDK
  • RSC를 지원하는 다양한 프레임워크

🔬 기술 분석

근본 원인

이 취약점은 React Server Components의 역직렬화 로직 내 requireModule 함수에 존재합니다:

root@kitploit:~
function requireModule(metadata) {  
  var moduleExports = __webpack_require__(metadata[0]);  
  return moduleExports[metadata[2]];  // VULNERABLE LINE - Prototype chain traversal
}

이 결함으로 인해 공격자는 React Flight 프로토콜을 통해 JavaScript의 프로토타입 체인을 탐색하여 constructor.constructor와 같은 속성을 통해 Function 생성자에 접근할 수 있으며, 이를 통해 임의 코드 실행이 가능합니다.

악용 체인

  1. 가짜 청크 생성 - 공격자가 조작된 청크 객체가 포함된 multipart form 데이터를 전송
  2. 프로토타입 오염 - __proto__를 악용하여 자기 참조 구조 생성
  3. Blob 핸들러 남용 - React 내부의 Blob 역직렬화 핸들러 트리거
  4. Function 생성자 접근 - constructor.constructor를 통해 체인으로 연결하여 Function()에 접근
  5. 코드 실행 - child_process.execSync()를 통해 임의 JavaScript 주입

공격 흐름 다이어그램

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  Attacker sends multipart/form-data with Next-Action header │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Server deserializes payload via React Flight protocol      │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Fake chunk object with __proto__ pollution processed       │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Blob handler invokes _formData.get(_prefix + id)           │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Resolves to Function("malicious_code")                     │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Arbitrary code executed with Node.js process privileges    │
└─────────────────────────────────────────────────────────────┘

🚀 설치

요구 사항

  • Python 3.7 이상
  • requests 라이브러리

설정

root@kitploit:~
# Clone the repository
git clone https://github.com/yourusername/react2shell-poc.git
cd react2shell-poc

# Install dependencies
pip install -r requirements.txt

# Make script executable (Linux/macOS)
chmod +x react2shell.py

Requirements.txt

root@kitploit:~
requests>=2.31.0
urllib3>=2.0.0

💻 사용법

기본 사용법

root@kitploit:~
python3 react2shell.py

대화형 세션

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║           React2Shell (CVE-2025-55182) PoC                ║
║                 CVSS 10.0 - Critical RCE                  ║
║                                                           ║
║  Affected: React 19.0.0, 19.1.0, 19.1.1, 19.2.0          ║
║           Next.js ≥14.3.0-canary.77, 15.x, 16.x          ║
║                                                           ║
║  Cerberus Secure - Lab Use Only                          ║
╚═══════════════════════════════════════════════════════════╝

[?] Enter target information:
    Host (e.g., localhost or 192.168.1.100): localhost
    Port (e.g., 3000): 3000

[React2Shell]> id
[*] Target: http://localhost:3000/
[*] Command: id
[*] Building exploit payload...
[*] Sending exploit request...
[+] Response Status Code: 200
[*] Parsing response...

╔═══════════════════════════════════════════════════════════╗
║                    COMMAND OUTPUT                         ║
╚═══════════════════════════════════════════════════════════╝
uid=1000(node) gid=1000(node) groups=1000(node)

[React2Shell]> whoami
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> exit

예시 명령어

root@kitploit:~
# System reconnaissance
[React2Shell]> id
[React2Shell]> whoami
[React2Shell]> uname -a
[React2Shell]> cat /etc/os-release

# File system exploration
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> cat package.json

# Environment variables (often contain secrets)
[React2Shell]> printenv
[React2Shell]> echo $PATH

# Network information
[React2Shell]> ifconfig
[React2Shell]> netstat -tulpn

사용 가능한 명령어

명령어설명
<모든 셸 명령어>대상에서 명령어 실행
help도움말 메시지 표시
exit / quit / q도구 종료

🛡️ 탐지

네트워크 수준 탐지 (Snort v3)

악용 시도를 탐지하려면 이 Snort 규칙을 배포하세요:

root@kitploit:~
alert http any any -> $LAN_NETWORK any (
    msg:"Potential Next.js React2Shell / CVE-2025-55182 attempt";
    flow:to_server,established;
    content:"Next-Action"; http_header; nocase;
    content:"multipart/form-data"; http_header; nocase;
    pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
    pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
    pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
    classtype:web-application-attack;
    sid:6655001;
    rev:1;
)

탐지 로직:

  • Next-Action 헤더(RSC 특유) 모니터링
  • multipart/form-data 페이로드 탐지
  • 악용 특유 패턴 식별: name="0", status: "resolved_model", then: "$1:__proto__:then"

엔드포인트 탐지 (OSQuery)

취약한 패키지 버전을 검사하려면 이 OSQuery 규칙을 사용하세요:

root@kitploit:~
{
  "queries": {
    "detect_react2shell_vulnerable_packages": {
      "query": "SELECT name, version, path FROM npm_packages WHERE (name='react-server-dom-parcel' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-turbopack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-webpack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0'));",
      "interval": 3600,
      "description": "Detects vulnerable versions of React Server Components packages affected by CVE-2025-55182",
      "platform": "linux,windows,macos",
      "version": "1.0"
    }
  }
}

장점:

  • 취약한 패키지가 있는 엔드포인트를 검사
  • 개발, 스테이징, 프로덕션 환경에서 작동
  • CI/CD 파이프라인에 통합 가능
  • 배포 전 조기 경고 제공

로그 분석 지표

애플리케이션 로그에서 다음 패턴을 찾아보세요:

root@kitploit:~
- HTTP POST requests with "Next-Action" header
- Unusual multipart/form-data requests to application root
- Error messages containing "NEXT_REDIRECT" with unexpected digest values
- Spike in 500 errors with React-related stack traces
- Child process spawning from Node.js (execSync, spawn, exec)

🔧 해결 방법

즉시 조치

1. 취약한 패키지 업데이트

root@kitploit:~
# Check current versions
npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# Update React to patched version
npm install [email protected] [email protected]

# Update Next.js to latest patched version
npm install next@latest

# Verify updates
npm list react react-dom next

2. 애플리케이션 재빌드 확인

root@kitploit:~
# Clear cache and rebuild
rm -rf .next node_modules package-lock.json
npm install
npm run build

3. 업데이트된 애플리케이션 배포

  • 개발: 스테이징 환경에서 철저히 테스트
  • 스테이징: 프로덕션 배포 전 모든 기능 검증
  • 프로덕션: 적절한 롤백 계획과 함께 배포

장기 보안 조치

1. 웹 애플리케이션 방화벽(WAF) 규칙 구현

의심스러운 패턴 차단:

root@kitploit:~
- Requests with "Next-Action" header from untrusted sources
- Multipart form data with suspicious JSON structures
- Requests matching exploit signature patterns

2. 네트워크 분할

  • React 애플리케이션을 별도의 네트워크 영역으로 격리
  • 엄격한 이그레스 필터링 구현
  • 비정상적인 외부 연결 모니터링 및 알림

3. 런타임 애플리케이션 자체 보호(RASP)

  • RASP 솔루션을 배포하여 악용 시도 탐지 및 차단
  • 의심스러운 자식 프로세스 생성 모니터링
  • 예상치 못한 코드 실행 패턴에 대한 알림

4. CI/CD 보안 스캐닝

root@kitploit:~
# Example GitHub Actions workflow
name: Security Scan
on: [push, pull_request]

jobs:
  dependency-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Check for vulnerable React packages
        run: |
          npm audit --audit-level=critical
          npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

5. 모니터링 및 알림

다음에 대한 알림 설정:

  • 취약한 패키지 버전 배포
  • 로그 내 악용 시도 패턴
  • 예상치 못한 자식 프로세스 생성
  • 의심스러운 대상으로의 네트워크 연결

🧪 실습 환경 구성

옵션 1: 취약한 Next.js 애플리케이션

root@kitploit:~
# Create a new Next.js app with vulnerable version
npx [email protected] vulnerable-app
cd vulnerable-app

# Install vulnerable React version
npm install [email protected] [email protected]

# Start the development server
npm run dev

옵션 2: Docker 환경

Dockerfile 생성:

root@kitploit:~
FROM node:18-alpine

WORKDIR /app

# Create a basic Next.js app
RUN npx [email protected] vulnerable-app --typescript --tailwind --app --no-src-dir

WORKDIR /app/vulnerable-app

# Install vulnerable React versions
RUN npm install [email protected] [email protected]

EXPOSE 3000

CMD ["npm", "run", "dev"]

빌드 및 실행:

root@kitploit:~
docker build -t react2shell-lab .
docker run -p 3000:3000 react2shell-lab

옵션 3: Docker Compose

docker-compose.yml 생성:

root@kitploit:~
version: '3.8'
services:
  vulnerable-app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
    volumes:
      - ./app:/app/vulnerable-app

실행:

root@kitploit:~
docker-compose up -d

취약점 확인

curl로 테스트:

root@kitploit:~
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit_payload.txt

📚 참고 자료

공식 보안 권고

  • React 보안 권고 - CVE-2025-55182
  • Next.js 보안 권고
  • NVD - CVE-2025-55182

연구 및 분석

  • maple3142의 원본 PoC
  • Wiz Security Research - React2Shell 분석
  • Assetnote 보안 연구

탐지 및 완화

  • Snort 문서
  • OSQuery 문서
  • React Server Components 문서

관련 취약점

  • Log4Shell (CVE-2021-44228) - 역직렬화를 통한 유사한 RCE
  • Spring4Shell (CVE-2022-22965) - 프레임워크 수준 RCE

🤝 기여

기여는 언제나 환영합니다! 다음 지침을 따라주세요:

  1. 저장소 포크
  2. 기능 브랜치 생성 (git checkout -b feature/improvement)
  3. 변경사항 커밋 (git commit -am 'Add new detection method')
  4. 브랜치로 푸시 (git push origin feature/improvement)
  5. 풀 리퀘스트 생성

기여 분야

  • 추가 탐지 규칙(Suricata, Zeek 등)
  • 보안 프레임워크 통합(MISP, TheHive 등)
  • 강화된 페이로드 변형
  • 개선된 출력 파싱
  • 추가 문서 및 번역

📝 라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

👤 작성자

Tinashe

  • 직책: 사이버 보안 솔루션 설계자
  • 소속: Cerberus Secure / iConnect SA
  • 위치: 남아프리카공화국 요하네스버그
  • LinkedIn: https://www.linkedin.com/in/tinashe-matanda/
  • GitHub: @tinashelorenzi

Cerberus Secure 소개

Cerberus Secure는 iConnect SA의 사이버 보안 부문으로, 다음을 전문으로 합니다:

  • DDoS 완화 및 네트워크 보안
  • GRC 컴플라이언스(POPIA, ECT, PCI-DSS, HPCSA)
  • 보안 아키텍처 및 솔루션 설계
  • 침해 대응 및 위협 인텔리전스
  • 맞춤형 SIEM 개발(Olympus 플랫폼)

🙏 감사의 말

  • maple3142 - 원본 개념 증명 연구
  • Wiz Security Research - 포괄적인 취약점 분석
  • Assetnote - 향상된 악용 기법
  • React 팀 - 신속한 대응 및 패치 개발
  • Next.js 팀 - 프레임워크 수준 완화 구현

⚖️ 책임 있는 공개

이 취약점은 보안 연구자들이 React 팀에 책임감 있게 공개했습니다. 이 PoC는 다음 이후에 공개되었습니다:

  • 공식 패치가 제공된 이후
  • 조직이 업데이트할 충분한 시간이 지난 이후
  • React 보안 팀의 공개 공지 이후

타임라인:

  • 2025년 12월: 취약점 발견
  • 2025년 12월: React 팀에 조정된 공개
  • 2025년 12월: 패치 릴리스(19.0.1, 19.1.2, 19.2.1)
  • 2025년 12월: 공개 공지 및 PoC 릴리스

기억하세요: 이 도구를 책임감 있게, 테스트 권한이 있는 시스템에서만 사용하세요.

이 저장소에 대한 질문, 우려 사항 또는 보안 문제가 있으면 이슈를 열거나 관리자에게 직접 문의하세요.

도구 다운로드
필드세부 정보
CVE IDCVE-2025-55182
CVSS 점수10.0 (치명적)
공격 벡터네트워크
공격 복잡성낮음
필요 권한없음
사용자 상호 작용없음
영향완전한 시스템 장악 (RCE)
공개 날짜2025년 12월