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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — CVE-2025-55182 React RCE 테스트 프로그램 | Kitploit
도구/GitHubGitHub/theman001/cve-2025-55182
Vulnerability ScannersPayload GenerationExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubtheman001/cve-2025-55182

CVE-2025-55182

CVE-2025-55182 React RCE 테스트 프로그램

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55182 (React2Shell)

CVE-2025-55182 React RCE Test Program

🔒 CVE-2025-55182 Interactive RCE Scanner

이 스크립트는 React 19.x의 React Server Components (RSC) 에 존재하는 심각한 원격 코드 실행(RCE) 취약점인 CVE-2025-55182를 대상으로 하는 취약성 검증 도구입니다.

본 도구는 실제 서버에서 취약점이 존재하는지 판단하고, 옵션에 따라 명령어를 실행하거나, 로그를 남기거나, 2단계 RCE 방식(module#_load) 으로도 테스트할 수 있습니다.

⚠️ 이 도구는 폐쇄된 테스트 환경에서 보안 감사 및 취약점 검증 목적으로만 사용해야 합니다.


📋 React2Shell (CVE-2025-55182) 취약점 요약

항목내용
취약점 번호CVE-2025-55182 (React) / CVE-2025-66478 (Next.js)
취약점 이름React2Shell
취약점 유형원격 코드 실행 (RCE) – 인증 불필요
심각도 (CVSS)10.0 (치명적)
발견일2025-11-29 (Lachlan Davidson)
공격 난이도매우 낮음 (Log4Shell 수준)
취약점 설명Flight 역직렬화 처리 중 requireModule() 함수의 대괄호 표기법을 통해 프로토타입 체인(constructor, __proto__)에 접근 가능해지는 구조적 RCE 취약점

🧱 취약한 제품 및 버전

✅ RSC 기능이 포함된 프로젝트는 React와 별개로 react-server-dom-* 모듈도 반드시 최신 버전으로 업그레이드해야 안전합니다.


📚 Table of Contents

  • 🗂️ 디렉토리 구조
  • 🧩 주요 기능
  • 📦 설치 방법
  • 🚀 실행 예시
  • 💬 인터랙티브 명령어 입력 예시
  • ⚠️ 보안 주의사항
  • 📚 기술 참고
  • 📄 라이선스 및 사용 조건

🗂️ 디렉토리 구조

root@kitploit:~
CVE-2025-55182/
├── README.md                     # 전체 개요 및 스캐너 사용법
├── DETECTION_RULES.md            # 탐지/차단용 규칙 모음
├── 설명 및 탐지규칙.md             # 한글 탐지 규칙 설명
├── cve_2025_55182_interactive.py # RCE 검증 스캐너 스크립트
├── requirements.txt              # 스캐너 의존성 목록
├── setup_vulnerable_env.sh       # 취약 환경 일괄 설치 스크립트
├── uninstall_vulnerable_env.sh   # 취약 환경 정리/제거 스크립트
└── vulnerable-react-env/         # React2Shell 취약 서버 실습용 코드
    ├── README.md                 # 실습 환경 사용법
    ├── package.json              # npm 스크립트 및 의존성
    ├── server.js                 # 취약한 Express 백엔드
    ├── public/
    │   └── index.html            # CDN 기반 React 프런트엔드
    └── .gitignore

🧩 주요 기능

✅ 취약 서버에서 RCE가 가능한지 인터랙티브 방식으로 테스트
✅ child_process#execSync (기본) 또는 module#_load 방식 지원
✅ 명령어 실행 결과를 로그 파일로 저장
✅ 사용자가 직접 입력한 시스템 명령을 서버에 전달


📦 설치 방법

root@kitploit:~
git clone <this-repo>
cd <this-repo>
pip install -r requirements.txt

🚀 실행 예시

  1. 기본 RCE 테스트 (execSync 방식)

    • child_process.execSync()를 사용한 명령 실행
    • python cve_2025_55182_interactive.py http://localhost:3000 --rce
  2. 2단계 RCE 테스트 (module#_load 방식)

    • 악성 JS 파일 생성 후 module#_load를 통해 실행
    • python cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoad
  3. RSC 기반 RCE 테스트 (--rce2 옵션)

    • Next.js의 서버 컴포넌트 처리 경로를 통한 페이로드 실행
    • python cve_2025_55182_interactive.py http://localhost:3000 --rce2
  4. 명령어 실행 결과 로그 저장

    • 모든 명령어 결과를 지정된 로그 파일에 저장
    • python cve_2025_55182_interactive.py http://localhost:3000 --rce --log rce_output.log
  5. 전체 기능 활용 (방식 + 로그)

    • moduleLoad 방식과 로그 저장을 함께 사용

🚧 취약한 React 서버 실습 환경 (OCI/Ubuntu)

vulnerable-react-env 폴더에는 CVE-2025-55182를 재현할 수 있는 의도적으로 취약한 React + Express 서버가 포함되어 있습니다.

  1. 빠른 일괄 설정 (권장)
    • ./setup_vulnerable_env.sh를 실행하면 apt 패키지 설치 → nvm/Node.js 20 설치 → npm install이 한 번에 완료됩니다.
    • 완료 후 cd vulnerable-react-env && npm start 또는 npm run dev로 서버를 실행합니다.
    • ⚠️ npm run만 입력하면 스크립트 목록만 출력됩니다. 반드시 npm start(또는 npm run start)처럼 스크립트 이름을 지정하세요.
    • 환경을 정리하려면 ./uninstall_vulnerable_env.sh로 node_modules, moduleLoad 페이로드, (옵션) Node 20 및 nvm을 제거할 수 있습니다.
    • ❗️ ERR_MODULE_NOT_FOUND: Cannot find package 'express' 등 의존성 에러가 날 경우 cd vulnerable-react-env && npm install로 node_modules를 설치한 뒤 다시 npm start 하세요.
  2. 수동 설정 (대안)
    • sudo apt update && sudo apt install -y curl build-essential

⚠️ 연구/교육 목적 외 사용 금지. 인터넷에 노출하지 마세요.


💬 인터랙티브 명령어 입력 예시

💬 입력할 시스템 명령어: whoami
✅ 응답 코드: 200
📄 응답 내용: {"success":true,"result":"www-data"}

💬 입력할 시스템 명령어: id
✅ 응답 코드: 200
📄 응답 내용: {"success":true,"result":"uid=1000(hacker) gid=1000(hacker)"}

💬 입력할 시스템 명령어: exit
👋 종료합니다.


⚠️ 보안 주의사항

❌ 운영 환경에서는 절대 사용하지 마십시오.
✅ 이 스크립트는 로컬 테스트 환경 또는 격리된 VM에서만 사용해야 합니다.
🛠️ --method moduleLoad 방식은 /tmp/evil.js에 실제 파일을 생성합니다.
🧾 --log 옵션을 사용할 경우 출력 결과가 평문으로 저장되므로 파일 접근을 제한하세요.
🔐 모든 요청은 취약한 서버에서 실제 JavaScript 코드가 실행되는지 확인합니다.


📚 기술 참고

  • 공식 CVE: CVE-2025-55182

  • Exploit 방식:

    1. child_process#execSync
    2. vm#runInThisContext
    3. fs#writeFileSync
    4. module#_load
  • 공격 흐름:

    1. /formaction 엔드포인트에 특수한 multipart/form-data 전송
    2. 서버에서 requireModule() 호출
    3. 프로토타입 체인 또는 바운딩된 함수 실행을 통해 RCE 발생

📄 라이선스 및 사용 조건

이 프로젝트는 보안 연구, 감사, 테스트를 위한 용도로만 제공되며,
실제 시스템에 대한 무단 사용은 불법입니다.

본 툴의 사용으로 발생한 모든 법적 책임은 사용자 본인에게 있습니다.

도구 다운로드
제품/도구취약 버전패치된 버전
React.js19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1
react-server-dom-webpack상동 (↑)상동
react-server-dom-parcel상동 (↑)상동
react-server-dom-turbopack상동 (↑)상동
Next.js 1414.3.0.canary.77 이상 일부 버전(비공식적으로) 15.0.5 이상으로 전환 권고
Next.js 1515.0.0 ~ 15.5.615.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 15.6.0
Next.js 1616.0.0 ~ 16.0.616.0.7
기타 도구React Router RSC, RedwoodJS, Vite RSC Plugin, Parcel RSC Plugin 등해당 프로젝트의 RSC 의존성 패치 필요
  • python cve_2025_55182_interactive.py http://localhost:3000 --rce --method moduleLoad --log rce_output.log
  • 페이로드 디버깅 출력

    • 서버 전송 전 페이로드를 콘솔에 출력
    • python cve_2025_55182_interactive.py http://localhost:3000 --rce --debug

  • curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh -o /tmp/install_nvm.sh && bash /tmp/install_nvm.sh
  • nvm install 20 && nvm use 20
  • cd vulnerable-react-env && npm install
  • npm start (기본 포트: 3000)
  • 취약점 체험
    • 브라우저에서 http://localhost:3000 접속 후 폼을 통해 _payload와 cmd를 전송
    • 또는 vulnerable-react-env/README.md의 curl 예시로 RCE 흐름 재현