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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — # CVE-2025-55182 개념 증명 익스플로잇 React Server Components의 심각한 인증 없는 원격 코드 실행(RCE) 취약점인 CVE-2025-55182에 대한 개념 증명 익스플로잇입니다. 자동화된 Python 익스플로잇, 기술 분석, 탐지 규칙, 그리고 승인된 보안 테스트를 위한 랩 환경 설정을 포함합니다. | Kitploit
도구/GitHubGitHub/tinashelorenzi/cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingIntrusion DetectionLearning & EducationRed TeamingPayload DevelopmentLabs & Practice
GitHubtinashelorenzi/cve-2025-55182

CVE-2025-55182

# CVE-2025-55182 개념 증명 익스플로잇 React Server Components의 심각한 인증 없는 원격 코드 실행(RCE) 취약점인 CVE-2025-55182에 대한 개념 증명 익스플로잇입니다. 자동화된 Python 익스플로잇, 기술 분석, 탐지 규칙, 그리고 승인된 보안 테스트를 위한 랩 환경 설정을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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)
    • ✅ 실습 환경 구성 가이드
    • ✅ 포괄적인 문서

    🔍 취약점 세부 정보

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

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

    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 릴리스

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

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

    도구 다운로드