피드로 돌아가기
Dev.toSecurity
원문 읽기
HPACK 증폭과 Flow-control 정체를 이용한 32GB RAM 점유 DoS 공격
HTTP/2 Bomb (CVE-2026-49975): the HPACK + flow-control DoS, and how to patch it
AI 요약
Context
HTTP/2의 HPACK 헤더 압축 메커니즘과 Flow-control 제어의 설계상 허점을 결합한 고밀도 DoS 공격 사례임. 단일 클라이언트가 적은 트래픽으로 서버 메모리를 고갈시키는 구조적 취약점을 가짐.
Technical Solution
- HPACK Indexed-reference Amplification을 통한 메모리 팽창 유도
- RFC 9113의 Cookie 헤더 분할 허용 특성을 이용해 Header-count 제한 우회
- Server-side의 Header Materialization 과정에서 발생하는 메모리 할당 유도
- Zero-byte Flow-control Window 설정을 통한 서버 응답 지연 및 메모리 점유 유지
- 주기적인 WINDOW_UPDATE 전송으로 Connection Timeout 방지 및 자원 고정
- Decoded Header Size와 Header Count를 동시에 제한하는 이중 캡핑 구조 도입
실천 포인트
- HTTP/2 사용 시 Decoded Header Size뿐만 아니라 Header Count에 대한 엄격한 제한 설정 여부 검토 - Cookie 헤더를 포함한 모든 헤더 필드가 카운트 제한에 포함되는지 확인 - 응답이 지연되는 Stalled Stream의 최대 생존 시간(Lifetime) 설정 및 제한 - 개별 워커 프로세스/컨테이너에 memory.max 또는 ulimit-v 설정을 적용하여 전체 시스템 Swap 방지 및 OOM-kill 유도 설계