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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-66478-Exploit-Poc — Next.js CVE-2025-66478에 대한 개념 증명 익스플로잇으로, Server Actions에서 안전하지 않은 역직렬화 및 프로토타입 오염을 통한 RCE를 시연합니다. 보안 연구를 위한 취약한 앱과 Python 익스플로잇 스크립트가 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/namest504/cve-2025-66478-exploit-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubnamest504/cve-2025-66478-exploit-poc

CVE-2025-66478-Exploit-Poc

Next.js CVE-2025-66478에 대한 개념 증명 익스플로잇으로, Server Actions에서 안전하지 않은 역직렬화 및 프로토타입 오염을 통한 RCE를 시연합니다. 보안 연구를 위한 취약한 앱과 Python 익스플로잇 스크립트가 포함되어 있습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Next.js CVE-2025-66478 PoC

English | 한국어

이 저장소는 Next.js CVE-2025-66478 취약점을 재현하고 연구하기 위한 PoC(개념 증명) 프로젝트입니다. 취약점이 존재하는 Next.js 애플리케이션과, 해당 취약점을 테스트할 수 있는 Python 익스플로잇 스크립트로 구성되어 있습니다.

CVE-2025-66478 란?

Next.js의 Server Actions 처리 과정에서 발생하는 원격 코드 실행(RCE) 취약점입니다.

핵심 요약:

  • 근본 원인 (Root Cause): RSC(React Server Components)의 Flight 프로토콜에서 발생하는 불안전한 역직렬화(Insecure Deserialization)
  • 공격 방법 (Vector): __proto__ 속성을 이용한 프로토타입 오염(Prototype Pollution)

취약점 상세

항목내용
취약점 IDCVE-2025-66478
유형Remote Code Execution (RCE)
원인Insecure Deserialization in RSC Flight Protocol
위험도 (CVSS)10.0 (Critical)
영향서버 상에서 임의의 시스템 명령어 실행 가능

공격 매커니즘 (Technical Detail)

  1. Payload 전송: 공격자는 React의 특수 직렬화 포맷(Flight)을 조작하여, __proto__ 속성이 포함된 데이터를 서버로 전송합니다.
  2. Insecure Deserialization & Pollution: 서버는 클라이언트가 보낸 데이터를 역직렬화하는 과정에서 검증 없이 복원합니다. 이로 인해 Object.prototype이 오염됩니다.
  3. Thenable Gadget: 모든 객체에 then 속성이 주입됩니다. Next.js 내부 로직은 then 메서드가 있는 객체를 **Promise(Thenable)**로 착각하게 됩니다.
  4. RCE Execution: 서버가 이 "가짜 Promise"를 실행(await)하려고 시도할 때, 공격자가 then 메서드 안에 심어둔 악성 자바스크립트 코드가 실행됩니다. (예: child_process.execSync)
root@kitploit:~
sequenceDiagram
    participant Attacker as 공격자 (Attacker)
    participant Server as Next.js 서버
    
    Attacker->>Server: POST / ("__proto__": {"then": ...} 포함 JSON)
    Note right of Server: JSON 파싱 중 Object.prototype 오염
    
    Server->>Server: 애플리케이션 로직이 객체를 만남
    
    rect rgb(200, 150, 150)
    Note right of Server: "Thenable" 체크 가젯 동작
    Server->>Server: 검사: typeof obj.then === 'function'?
    Server-->>Server: YES (오염으로 인해 참)
    end
    
    Server->>Server: 악성 .then() 실행 (Await)
    Note right of Server: 악성 JS 코드 실행 (RCE)
    
    Server-->>Attacker: 응답 (액션 리다이렉트 / 에러 정보)

결과적으로 서버는 조작된 Promise를 처리하는 과정에서 공격자가 주입한 자바스크립트 코드를 실행하게 되며, 이는 시스템 명령어 실행으로 이어질 수 있습니다.

영향 받는 버전

이 취약점은 App Router를 사용하는 Next.js 애플리케이션에 영향을 미칩니다.

  • 영향 O:
    • Next.js 15.x
    • Next.js 16.x
    • Next.js 14.3.0-canary.77 이후의 카나리(Canary) 릴리스
  • 영향 X:
    • Next.js 13.x
    • Next.js 14.x Stable(안정화) 릴리스
    • Pages Router만 사용하는 애플리케이션
    • Edge Runtime 환경

패치된 버전 (Fixed Versions):

  • 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7
  • 16.0.7
  • 15.6.0-canary.58 (PPR 사용 시)

참고 자료

  • Next.js 보안 권고 사항 (GitHub)
  • NVD - CVE-2025-66478
  • Security Advisories

파일 구조

  • next.js/: 취약점이 존재하는 Next.js 웹 애플리케이션 예제 코드
  • exploit/: Python으로 작성된 익스플로잇 실행 스크립트 (main.py)

사전 준비

  • Node.js: v18 이상 권장
  • Python: v3.8 이상 권장

1. Next.js 애플리케이션 실행

먼저 테스트 대상이 될 Next.js 서버를 실행해야 합니다.

  1. next.js 디렉토리로 이동합니다:

    root@kitploit:~
    cd next.js
    
  2. 의존성을 설치합니다:

    root@kitploit:~
    npm install
    # yarn이나 pnpm을 사용해도 무방합니다.
    
  3. 개발 서버를 실행합니다:

    root@kitploit:~
    npm run dev
    

2. Python 익스플로잇 실행

  1. 프로젝트 루트에서 exploit 디렉토리로 이동합니다:

    root@kitploit:~
    cd exploit
    
  2. (선택 사항) 가상 환경(Virtual Environment) 사용을 권장합니다:

    root@kitploit:~
    python3 -m venv venv
    source venv/bin/activate
    
  3. 필요한 라이브러리를 설치합니다: requests 모듈이 필요합니다.

    root@kitploit:~
    pip install requests
    
  4. 스크립트를 실행합니다:

    root@kitploit:~
    python main.py
    

    기본적으로 로컬 주소(http://localhost:3000)를 대상으로 합니다. 다른 주소를 테스트하려면 --url 옵션을 사용하세요:

    root@kitploit:~
    python main.py --url http://target-ip:3000
    

주의사항

본 코드는 보안 연구 및 교육 목적으로만 제공됩니다. 사전에 허가받지 않은 시스템이나 네트워크에 대해 이 도구를 사용하는 것은 불법이며, 이로 인해 발생하는 모든 문제에 대한 책임은 전적으로 사용자 본인에게 있습니다.

도구 다운로드