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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — # CVE-2025-55182(React2Shell)에 관한 석사 학위 논문 연구. 6가지 공격 시나리오(RCE, 데이터 유출, 웹사이트 변조)를 갖춘 모듈식 익스플로잇 프레임워크, 대화형 리버스 셸, 그리고 React Server Components의 프로토타입 오염 및 안전하지 않은 역직렬화를 연구하기 위한 완전한 취약 실습 환경. | Kitploit
도구/GitHubGitHub/devianntsec/cve-2025-55182
Exploit FrameworksVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationPenetration TestingPapers & ResearchLearning & EducationRemote Access ToolPayload DevelopmentLabs & Practice
154개월 전아직 검토되지 않음
GitHub
devianntsec/cve-2025-55182

CVE-2025-55182

# CVE-2025-55182(React2Shell)에 관한 석사 학위 논문 연구. 6가지 공격 시나리오(RCE, 데이터 유출, 웹사이트 변조)를 갖춘 모듈식 익스플로잇 프레임워크, 대화형 리버스 셸, 그리고 React Server Components의 프로토타입 오염 및 안전하지 않은 역직렬화를 연구하기 위한 완전한 취약 실습 환경.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55182 — React2Shell: 고급 익스플로잇 및 석사 학위 논문 연구

Platform Language License: MIT Research CVSS

신뢰할 수 없는 데이터 역직렬화 + React Server Components의 프로토타입 오염
Next.js Server Actions를 통한 인증되지 않은 원격 코드 실행
영향 범위: React 19.0.0 - 19.2.0 · 패치: React 19.0.1 / 19.1.2 / 19.2.1 (2025년 12월 3일)


고급 익스플로잇 시연 - 취약한 Next.js 애플리케이션에 대한 RCE 기본 명령, 인터랙티브 셸 및 다중 공격 벡터

설명

이 저장소는 React Server Components의 치명적(CVSS v3.1: 10.0) 원격 코드 실행(RCE) 취약점인 CVE-2025-55182에 대한 석사 학위 논문 연구를 담고 있습니다.

이 취약점은 React Flight 프로토콜의 안전하지 않은 역직렬화 메커니즘에서 비롯됩니다. Next.js는 Server Actions를 처리할 때 수신된 multipart 페이로드를 적절한 검증 없이 역직렬화합니다. 공격자는 프로토타입 체인을 오염시키고 임의의 JavaScript를 주입하는 악성 페이로드를 제작할 수 있으며, 이 JavaScript는 Function 생성자(이후 child_process.execSync())를 통해 서버에서 실행됩니다.

CVE-2025-66478 참고: Vercel은 이 동일한 취약점의 Next.js 특정 영향을 추적하기 위해 병행 CVE를 발행했습니다. Next.js가 React를 벤더링(vendored) 방식으로 번들하기 때문에 많은 의존성 스캐너가 이를 자동으로 취약한 것으로 감지하지 못합니다. 미국 국가 취약점 데이터베이스(NVD)는 CVE-2025-66478을 CVE-2025-55182의 중복으로 공식 기각했지만, Vercel 자체 보안 권고에서는 계속 참조되고 있습니다.

후속 취약점: React 팀은 이후 초기 패치 버전(19.0.1, 19.1.2, 19.2.1)에 존재하는 두 가지 추가 이슈를 공개했습니다: CVE-2025-55184(서비스 거부, CVSS 7.5) 및 CVE-2025-55183(소스 코드 노출, CVSS 5.3). 세 가지를 모두 해결하려면 19.0.2, 19.1.3 또는 19.2.2로 업그레이드해야 합니다.

내 기여

측면설명
네 가지 공격 모듈프로젝트 삭제, 웹사이트 변조, 환경 변수 탈취, 서버 종료
인터랙티브 셸특수 명령 및 복원 기능을 갖춘 지속형 셸
안정적인 데이터 유출HTTP 헤더 크기 제한을 우회하는 줄 단위 읽기
복원 스크립트공격 후 안전한 실험실 복원
학술 문서화근본 원인, 페이로드 분석 및 취약점 타임라인

저장소 구조

root@kitploit:~
CVE-2025-55182/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   ├── exploit-explanation.md       # Exploit usage documentation
│   └── react2shell.py               # Main exploit — 4 attack modules + interactive shell
│
├── vulnerable-app/                  # Vulnerable Next.js application
│   ├── README.md                    # Original vulnapp credits
│   ├── package.json                 # React 19.0.0 (vulnerable)
│   ├── app/                         # Application source code
│   ├── curl_id.sh                   # Original exploit script (by zack0x01)
│   └── scripts/
│       └── restore.sh               # Restoration script (my contribution)
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-app-initial.png
    │   ├── 02-rce-basic.png
    │   ├── 03-interactive-shell.png
    │   ├── 04-no-payload.png
    │   ├── 05-delete-result.png
    │   ├── 06-deface.png
    │   ├── 07-shutdown-servers.png
    │   ├── 08-restore-from-script.png
    │   └── 09-restore-from-interactive-shell.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-payload-breakdown.md  # Payload structure and execution flow
        └── 03-timeline.md           # CVE timeline

빠른 시작

사전 요구 사항

  • Node.js 18+ 및 npm
  • Python 3.9+
  • 취약한 Next.js 애플리케이션(vulnerable-app/에 제공)
  • 테스트용 격리 VM 권장

1단계 — 취약한 애플리케이션 시작

root@kitploit:~
cd vulnerable-app
npm install --legacy-peer-deps
npm run dev
# App available at http://localhost:3000

2단계 — 익스플로잇 실행

root@kitploit:~
cd ../exploit

# Check if target is vulnerable
python3 react2shell.py -u http://localhost:3000 --check

# Execute single command
python3 react2shell.py -u http://localhost:3000 -c "whoami"

# Interactive shell mode
python3 react2shell.py -u http://localhost:3000 -i

공격 모듈

모듈명령설명영향
프로젝트 삭제--delete-projects대시보드에서 모든 프로젝트 삭제데이터 파괴
웹사이트 변조--deface "message"메인 페이지 교체변조
환경 변수 탈취--steal-env환경 변수 탈취정보 유출
서버 종료--shutdown-servers모든 서버 종료서비스 거부

기술 개요

취약점 근본 원인

React Server Components는 사용자 지정 직렬화/역직렬화 메커니즘("Flight" 프로토콜)을 사용하여 서버에서 클라이언트로 컴포넌트 데이터를 전송합니다. 서버는 서버 액션을 처리할 때 수신된 페이로드를 적절한 검증 없이 역직렬화합니다.

핵심 결함은 동작에 대한 신뢰(behavioral trust)입니다. 역직렬화기는 속성이 객체에 직접 속하는지 확인하지 않고 typeof obj.then === 'function'만 확인하여 Promise를 식별합니다. 이를 통해 공격자는 Object.prototype.then을 오염시켜 모든 일반 객체가 thenable로 보이게 만들 수 있습니다.

공격자는 다음을 수행하는 악성 페이로드를 제작할 수 있습니다:

  1. __proto__:then을 사용한 프로토타입 체인 오염
  2. $1:constructor:constructor를 통한 Function 생성자로의 해석 리디렉션
  3. new Function(_prefix)를 통한 임의 JavaScript 실행
  4. process.mainModule.require('child_process').execSync()를 통한 시스템 명령 실행
  5. X-Action-Redirect HTTP 응답 헤더를 통한 출력 유출
root@kitploit:~
User-mode (unauthenticated)
  │
  ├─ POST / (Next.js Server Action endpoint)
  │    ├─ Headers: Next-Action: x
  │    └─ Multipart body with malicious JSON
  │
  └─ React Flight deserializer processes payload
       └─ Prototype pollution via __proto__:then
            └─ Function constructor reached via $1:constructor:constructor
                 └─ new Function(_prefix) executes attacker's JavaScript
                      └─ execSync() runs system command
                           └─ Output embedded in NEXT_REDIRECT error
                                └─ Next.js converts to X-Action-Redirect header

범위 설명

이 취약점은 React Server Components를 사용하는 App Router(Next.js 14 이후의 기본 구성)를 사용하는 모든 Next.js 애플리케이션에 영향을 미칩니다. 명시적으로 정의된 Server Actions는 필요하지 않습니다. 영향을 받는 RSC 패키지가 존재하기만 하면 충분합니다.

중요성

이 취약점을 통해 인증되지 않은 공격자는 다음을 수행할 수 있습니다:

  • 서버에서 임의 명령 실행
  • 환경 변수 및 자격 증명 탈취
  • 애플리케이션 데이터 수정 또는 삭제
  • 추가 공격을 위한 경유지(pivot point)로 서버 사용

공격 체인

root@kitploit:~
1. [ANY]    Send crafted multipart POST to any Server Action endpoint
2. [SERVER] React deserializer processes malicious JSON
3. [SERVER] Prototype pollution poisons Object.prototype.then
4. [SERVER] Plain object treated as thenable; Function constructor reached
5. [SERVER] new Function(_prefix) executes attacker's arbitrary JavaScript
6. [SERVER] execSync() runs system command; output captured
7. [SERVER] Output embedded in NEXT_REDIRECT error digest
8. [SERVER] Next.js returns X-Action-Redirect header with URL-encoded output
9. [ATTACKER] Extract and URL-decode command result from header

실증 테스트

모든 테스트는 네트워크에 노출되지 않은, Kali Linux 2026.1과 Next.js 15.0.0 및 React 19.0.0을 실행하는 격리된 VirtualBox VM에서 수행되었습니다.

공격 모듈결과비고
명령 실행✅ RCE 확인whoami, id, uname -a 안정적으로 작동
프로젝트 삭제✅ 대시보드 변경프로젝트 제거, React 구조 유지
웹사이트 변조✅ 웹사이트 변조 성공사용자 지정 메시지 표시
환경 변수 탈취✅ 환경 변수 추출stolen_env.txt에 저장
서버 종료✅ 모든 서버 중지 상태로 표시UI 업데이트, React 정상 작동
인터랙티브 셸✅ 지속형 셸특수 명령 사용 가능
복원✅ 원래 상태 복원restore.sh 스크립트 사용

결정론(Determinism): 힙 스프레이(heap spray)와 같은 확률적 익스플로잇과 달리, CVE-2025-55182는 완전히 결정론적입니다. 올바르게 구성된 HTTP POST 요청은 React Server Components가 활성화된 React 19.0.0–19.2.0을 실행하는 패치되지 않은 모든 시스템에서 확률 1로 RCE를 생성합니다.


기술 문서

문서설명
근본 원인 분석React Flight의 역직렬화 결함 및 프로토타입 오염
페이로드 분석악성 JSON 구조의 줄 단위 분석
CVE 타임라인발견, 공개 및 패치 연대표

학술적 배경

이 연구는 여러 환경에서 N-Day 취약점을 분석하는 사이버보안 석사 학위 논문(UCAM — Campus Internacional de Ciberseguridad)의 일부입니다.

이 CVE는 논문 내 현대 JavaScript 프레임워크 벡터를 나타내며 다음을 시연합니다:

  • React Server Components의 역직렬화 취약점
  • RCE 프리미티브로서의 프로토타입 오염
  • Next.js Server Actions 익스플로잇
  • Node.js 환경에서의 사후 익스플로잇(post-exploitation) 기술
  • 안전한 실험실 복원 방법론

키워드: RCE · Prototype Pollution · Deserialization · React · Next.js · Server Actions · CVE-2025-55182


작성자

Annais Molina (devianntsec) — 보안 연구원 | 사이버보안 석사 (UCAM)

GitHub LinkedIn Blog Email


감사의 글

  • @zack0x01 — 원본 취약 애플리케이션
  • Lachlan Davidson (Carapace) — 원본 취약점 발견 및 책임 있는 공개
  • AssetNote — react2shell-scanner 탐지 도구
  • Moritz Sanft — 최초로 작동한 공개 PoC(공개 후 약 30시간)
  • maple3142 — 원본 보고자의 공개 PoC(2025년 12월 5일)

라이선스

MIT 라이선스 — LICENSE 참조


법적 고지

이 저장소는 학술 석사 학위 논문의 일부로서 교육 및 보안 연구 목적으로만 제공됩니다. 모든 테스트는 네트워크에 노출되지 않은 격리된 가상 머신에서 수행되었습니다. 소유한 시스템 또는 테스트에 대한 명시적인 서면 승인을 받은 시스템에서만 사용하십시오. 승인되지 않은 시스템에 대한 무단 사용은 불법이며 형사 기소로 이어질 수 있습니다.

© 2026 Annais Molina · 사이버보안 석사 학위 논문
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
도구 다운로드