🇰🇷 한글 설명
Envoy 프록시의 라우터 필터에서 본문이 없는 POST, PUT, DELETE, PATCH 요청을 처리할 때 HTTP 303 내부 리다이렉트가 발생하면 Null 포인터 역참조가 발생합니다. 이로 인해 세그멘테이션 결함이 발생하여 Envoy 프로세스 전체가 충돌하며 서비스 거부 상태에 빠질 수 있습니다.
💡 쉬운 설명
특정 방식의 요청을 보내면 Envoy라는 프로그램이 갑자기 멈춰버리는 취약점입니다. 공격자가 이를 이용하면 웹 서비스 전체를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.18.0 until 1.35.13, 1.36.9, 1.37.5, and 1.38.3, the router filter contains a null pointer dereference vulnerability when handling HTTP 303 (See Other) internal redirects for body-less non-GET/HEAD requests. When a POST, PUT, DELETE, or PATCH request without a body is sent to a route configured with internal redirect policy that includes 303 in redirect_response_codes, and the upstream responds with HTTP 303, the redirect handling code attempts to drain a request body buffer that was never allocated. This results in a segmentation fault that crashes the entire Envoy process. When route configured with internal_redirect_policy including 303 in redirect_response_codes and upstream must return HTTP 303 response, an unauthenticated attacker can exploit this to cause complete denial of service, terminating all active connections. This vulnerability is fixed in 1.35.13, 1.36.9, 1.37.5, and 1.38.3.
📍 영향받는 시스템
Envoy 1.18.0 ~ 1.35.13, 1.36.9, 1.37.5, 1.38.3
⚔️ 공격 벡터
본문이 없는 특정 HTTP 메서드 요청을 통해 서버의 리다이렉트 로직을 유도하여 프로세스 충돌 유발
🛡️ 대응 방법
Envoy를 최신 보안 패치 버전(1.35.13, 1.36.9, 1.37.5, 1.38.3 이상)으로 업데이트
🔧 검증 코드
출력된 Envoy의 버전을 확인하여 취약한 버전 범위에 포함되는지 대조
envoy --version 2>/dev/null || dpkg -l | grep envoy