🇰🇷 한글 설명
Envoy 프록시에서 :authority 헤더가 존재할 때 디코딩된 HTTP/2 Host 헤더 값을 복사한 후 버리는 과정에서 취약점이 발견되었습니다. 공격자가 HPACK 인덱싱을 악용하여 대규모 Host 값을 반복 참조하게 만들면, 과도한 메모리 할당이 발생하여 프록시가 메모리 부족(OOM)으로 강제 종료될 수 있습니다.
💡 쉬운 설명
공격자가 특수한 방식으로 데이터를 보내면 서버가 이를 처리하는 과정에서 메모리를 과도하게 사용하게 만듭니다. 이로 인해 서버가 감당하지 못하고 갑자기 꺼져버리는 서비스 중단 상태가 발생할 수 있습니다.
🇺🇸 원문 (English)
Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1, Envoy copies every decoded HTTP/2 Host header value before discarding it when :authority is already present. The discarded value bypasses saveHeader, so its bytes and count are not charged against request header limits. An unauthenticated client can use HPACK indexing to submit many references to a large Host value across a bounded number of streams, forcing extreme header-copy allocation and causing the proxy to be out-of-memory killed. The relevant scope boundary is that the demonstrated amplification uses HTTP/2 HPACK and the duplicate Host discard behavior. This issue is fixed in versions 1.36.10, 1.37.6, 1.38.4, and 1.39.1.
📍 영향받는 시스템
Envoy versions prior to 1.36.10, 1.37.6, 1.38.4, and 1.39.1
⚔️ 공격 벡터
Unauthenticated client using HTTP/2 HPACK indexing to trigger excessive header-copy allocation
🛡️ 대응 방법
Update Envoy to versions 1.36.10, 1.37.6, 1.38.4, or 1.39.1 or later
🔧 검증 코드
출력된 Envoy 버전을 확인하여 취약한 버전(1.36.10, 1.37.6, 1.38.4, 1.39.1 미만)인지 대조합니다.
envoy --version 2>/dev/null || dpkg -l | grep envoy