🇰🇷 한글 설명
Envoy의 HTTP/2 다운스트림 요청 처리 과정에서 발생하는 취약점으로, 인증되지 않은 원격 공격자가 과도한 메모리 소비를 유발할 수 있습니다. 이는 쿠키 헤더 크기 검증 미흡과 HPACK 헤더 블록 제한의 불일치로 인해 발생하며, 결과적으로 Envoy 프로세스의 OOM(Out of Memory) 종료 및 서비스 거부(DoS)를 초래할 수 있습니다.
💡 쉬운 설명
해커가 특수하게 조작된 데이터를 보내 Envoy 서버의 메모리를 순식간에 가득 채워 서버를 멈추게 할 수 있는 문제입니다. 이로 인해 웹 서비스가 정상적으로 작동하지 않거나 중단될 수 있습니다.
🇺🇸 원문 (English)
Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to versions 1.35.11, 1.36.7, 1.37.3, and 1.38.1, a vulnerability in Envoy's HTTP/2 downstream request processing allows an unauthenticated remote client to trigger excessive memory consumption, potentially resulting in OOM termination of the Envoy process and denial of service. The issue arises from the combination of two behaviors. First, cookie header bytes are not fully accounted for during request header size validation in Envoy. Second, HPACK header block limits in oghttp2/quiche are enforced on encoded bytes without a corresponding limit on total decoded header size. Together, these behaviors allow a malicious client to cause large decoded header allocations while bypassing the intended request header size protections. Versions 1.35.11, 1.36.7, 1.37.3, and 1.38.1 contain a fix. No complete workaround is known short of applying a fix. Possible temporary mitigations include disabling downstream HTTP/2 where operationally feasible; enforcing stricter request header and cookie limits before traffic reaches Envoy; and monitoring Envoy memory usage for abnormal growth under HTTP/2 traffic.
📍 영향받는 시스템
Envoy versions prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1
⚔️ 공격 벡터
인증되지 않은 원격 클라이언트가 조작된 HTTP/2 헤더를 전송하여 메모리 할당 유도
🛡️ 대응 방법
Envoy를 최신 패치 버전(1.35.11, 1.36.7, 1.37.3, 1.38.1 이상)으로 업데이트
🔧 검증 코드
명령어 실행 결과로 패치된 버전 번호가 출력되면 안전하며, 출력되지 않으면 취약할 가능성이 있습니다.
envoy --version 2>/dev/null | grep -E 'v(1\.35\.(1[0-9]|11)|1\.36\.(7[0-9]?)|1\.37\.(3[0-9]?)|1\.38\.(1[0-9]?))'