[공격] 분석 — CVE-2026-27135
A remote DoS vulnerability in nghttp2 < 1.68.1 allows an attacker to trigger an assertion failure and crash the service by sending malformed frames after a session termination sequence.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.00775 · 악용난이도 moderate
🔍 공격 기법
본 취약점은 HTTP/2 세션 종료 후 상태 검증 누락으로 인해 발생하는 **Assertion Failure 기반의 Denial of Service(DoS)**이다.
- 공격 표면:
nghttp2라이브러리를 사용하는 모든 네트워크 엔드포인트 (HTTP/2 지원 서버, 프록시 등). 프로토콜 레벨에서는 HTTP/2 Frame 계층이 타겟이다. - 트리거 조건 및 원리:
- 세션 종료 유도: 공격자는
nghttp2_session_terminate_session또는nghttp2_session_terminate_session2API가 호출되도록 유도한다. 이는 애플리케이션의 명시적 호출이나, 라이브러리가 Connection Error를 감지했을 때 내부적으로 발생한다. - 상태 검증 우회: 세션이 종료되었음에도 불구하고 라이브러리가 잔여 데이터를 계속 읽어들이는 결함이 존재한다.
- Assertion 트리거: 이 상태에서
FRAME_SIZE_ERROR를 유발하는 Malformed Frame(예: 규격 외 크기의 프레임)을 전송하면, 내부 상태 불일치로 인해 Assertion Failure가 발생하며 프로세스가 즉시 종료된다.
- 세션 종료 유도: 공격자는
- 공격 체인 및 단계:
- 정찰: 대상 서버가 HTTP/2를 지원하는지 확인 (ALPN
h2협상). - 초기 접근: TCP 연결 후 HTTP/2 핸드셰이크 수행.
- 실행(Trigger): 세션 종료 조건 생성 $\rightarrow$ Malformed Frame 전송 $\rightarrow$ Assertion Failure 유도.
- 영향: 서비스 프로세스 Crash (DoS).
- 정찰: 대상 서버가 HTTP/2를 지원하는지 확인 (ALPN
- CVSS 벡터 분석:
AV:N/AC:L/PR:N/UI:N으로, 인증 없이 네트워크를 통해 매우 낮은 난이도로 공격 가능하다. 다만 영향도가A:H(가용성 높음)에 집중되어 있어 전형적인 DoS 패턴을 보인다.
악용 가능성: 본 취약점은 AV:N/AC:L/PR:N/UI:N 벡터가 보여주듯, 인증되지 않은 외부 공격자가 네트워크를 통해 특수하게 조작된 HTTP/2 프레임을 전송함으로써 원격에서 트리거할 수 있는 구조입니다. 공격 표면은 nghttp2 라이브러리를 사용하는 웹 서버나 프록시의 HTTP/2 엔드포인트이며, 구체적으로는 세션 종료 API(nghttp2_session_terminate_session) 호출 이후에도 데이터 읽기가 지속되는 상태에서 전송되는 malformed frame이 트리거 조건이 됩니다. EPSS 수치가 0.00775로 낮고 KEV에 등재되지 않은 점은 현재 광범위한 자동화 공격 도구(Weaponized Exploit)가 보급되지 않았음을 의미하지만, 이론적 난이도가 매우 낮아 타겟팅된 공격 시 즉각적인 악용이 가능합니다. 특히 assertion failure로 인한 프로세스 크래시는 서비스 가용성을 즉시 상실시키는 DoS(Denial of Service) 상태를 유발하므로 실전 위협 수준은 Moderate 등급에 부합합니다. 결과적으로 공격자는 정찰 단계에서 HTTP/2 지원 여부만 확인하면, 별도의 권한 획득이나 사용자 상호작용 없이 단일 패킷 전송만으로 대상 시스템을 무력화할 수 있는 높은 악용 가능성을 가집니다.
💥 영향 분석
- 서비스 가용성 상실: Assertion Failure는 일반적으로 프로세스를 즉시 종료시키므로, 해당 라이브러리를 사용하는 서버나 게이트웨이가 다운된다.
- 리소스 고갈: 자동 재시작 메커니즘이 있을 경우, 반복적인 공격으로 CPU/메모리 자원을 소모시키며 서비스 불능 상태를 유지할 수 있다.
🔗 관련 취약점·체이닝
본 취약점은 단일 공격만으로는 RCE나 정보 유출로 이어지지 않는 순수 DoS 유형이다. 하지만 다음과 같은 체이닝 가능성이 존재한다.
- 추정: 가용성 저하 $\rightarrow$ 보안 제어 우회: WAF나 IDS/IPS가
nghttp2기반의 프록시 형태로 동작할 경우, 해당 장비를 Crash시켜 백엔드 서버를 무방비 상태로 노출시키는 '보안 장비 무력화' 체이닝이 가능하다. - 추정: DoS $\rightarrow$ Fail-open 유도: 시스템 설계상 서비스 장애 시 보안 검사를 건너뛰고 통과시키는
Fail-open설정이 되어 있다면, 이를 통해 인증되지 않은 접근을 시도하는 경로로 활용될 수 있다. - 유형 수준 체이닝:
State Machine Violation$\rightarrow$Unexpected State Transition$\rightarrow$Crash/Panic.
🔎 탐지
- 패턴 예시: HTTP/2 세션 종료 신호(GOAWAY 프레임 등) 이후에 비정상적으로 큰 사이즈의 프레임이나 규격 외 헤더를 가진 프레임이 연속적으로 유입되는 패턴을 모니터링한다.
- 로그 분석: 애플리케이션 로그에서
assertion failed또는nghttp2관련 세그멘테이션 폴트(Segmentation Fault) 발생 여부를 확인한다.
🛡️ 완화 방안
- 근본 해결:
nghttp2라이브러리를 v1.68.1 이상으로 업데이트. (상태 검증 로직 추가됨) - 즉시 조치: 패치 적용 전까지 Edge 단(L7 Load Balancer 등)에서 HTTP/2(
h2) 트래픽을 일시적으로 차단하거나, 비정상적인 프레임 크기를 필터링하는 설정을 검토한다.
[분석 근거] 본 리포트는 다중 소스 데이터의 일관성이 확인된 교차검증 결과를 바탕으로 작성되었다. 실측 EPSS 값은 0.00775(백분위 0.52199)로, 이론적 심각도(CVSS 7.5)에 비해 실제 야생에서의 악용 가능성은 현재 Moderate 수준으로 낮게 예측된다. 이에 따라 즉시 대응보다는 이번 주 내 처리하는 scheduled 우선순위로 결정되었다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.5 · non-KEV · EPSS=0.00775 · exploit=moderate · in_scope=None