Envoy
v1.39.0Networking & MessagingEnvoy v1.39.0은 keyUsage 강제 필수화, DLB 밸런서 비활성화, TLS inspector 검증 강화, OTel 샘플링 동작 변경 등 여러 주요 변경 사항과, HTTP/2, HTTP/3, ext_authz, ext_proc, OAuth2, DNS 등 여러 하위 시스템에 걸친 약 20건의 medium 등급 CVE 수정을 함께 담은 대규모 릴리스입니다. dynamic modules 확장 포인트와 AI 프로토콜용 스트리밍 JSON 파서 등 비조치성 기능 및 성능 개선도 다수 포함되어 있습니다.
breaking인증서 keyUsage 강제 적용이 필수화됨
Envoy는 인증서의 keyUsage 확장을 항상 강제하도록 바뀌었고, enforce_rsa_key_usage 필드는 지원 중단되어 무시됩니다. v1.39.0부터 무조건 적용되므로, 느슨한 검증에 의존하던 인증서는 검증에 실패할 수 있습니다.
breakingDLB 커넥션 밸런서가 모든 빌드에서 비활성화됨
Intel DLB 커넥션 밸런서(envoy.network.connection_balance.dlb)는 소스 아카이브 손상으로 모든 빌드에서 비활성화되었습니다. 이 확장을 사용하는 환경에 해당합니다.
breakingTLS inspector가 범위를 벗어난 클라이언트 TLS 버전을 거부
TLS inspector가 클라이언트 TLS 버전이 1.0에서 1.3 사이인지 검증하며, 범위를 벗어나면 거부합니다. v1.39.0에서는 무조건 적용되지만 envoy.reloadable_features.tls_inspector_enforce_client_tls_version으로 되돌릴 수 있습니다.
breakingOTel 트레이싱이 Envoy 자체 샘플링 결정을 우선함
OpenTelemetry 트레이서가 전파된 트레이스 컨텍스트나 설정된 샘플러가 샘플링을 요청하더라도, overall_sampling을 포함한 Envoy 자체의 요청 단위 샘플링 결정을 우선하도록 바뀌었습니다. 다운스트림이나 컨텍스트 기반 샘플링 결정이 Envoy 설정보다 우선되는 것에 의존하던 환경에 해당하며, 내보내는 스팬 수가 줄어들 수 있습니다.
security핵심 프로토콜과 확장 기능 전반에 걸친 대규모 CVE 수정
이번 릴리스는 HTTP/2, HTTP/3, ext_authz, ext_proc, gRPC stats, 내부 리다이렉트, OAuth2, DNS, JSON 파싱, PROXY 프로토콜, 포매터, StatsD, TLS SAN 처리, Zstd 압축 해제에 걸쳐 약 20건의 CVE를 수정했으며, 릴리스 노트 기준 모두 medium 등급입니다. 대표적으로 HTTP/2 cookie 기반 헤더 제한 우회(CVE-2026-47774), HTTP/3 QPACK 블로킹 디코딩 DoS(GHSA-p7c7-7c47-pwch), Zstd 압축 해제 시 메모리 고갈(CVE-2026-48044)이 있습니다. 수정 사항은 v1.39.0에 포함됩니다.
securityOAuth2 쿠키 암호화가 AES-256-GCM으로 전환(선택적 마이그레이션)
OAuth2에 CVE-2026-47775 대응을 위한 AES-256-GCM 쿠키 암호화가 추가되었습니다. 마이그레이션은 선택적으로 진행되며, oauth2_use_gcm_encryption을 활성화하고 oauth_legacy_cbc_decrypt 지표를 모니터링한 뒤, 레거시 복호화가 더 이상 관측되지 않으면 oauth2_legacy_cbc_decrypt_compat을 비활성화하는 단계로 이뤄집니다.
주요 변경 (8)
- HTTP/2, HTTP/3, ext_authz, ext_proc, gRPC stats, 내부 리다이렉트, OAuth2, DNS, JSON 파싱, PROXY 프로토콜, 포매터, StatsD, TLS SAN 처리, Zstd 압축 해제에 걸친 약 20건의 medium 등급 CVE 수정. 대표적으로 CVE-2026-47774(HTTP/2 cookie 헤더 제한 우회), GHSA-p7c7-7c47-pwch(HTTP/3 QPACK DoS), CVE-2026-48044(Zstd 메모리 고갈)
- OAuth2에 AES-256-GCM 쿠키 암호화 추가(CVE-2026-47775), 레거시 CBC 복호화에서 선택적 단계 마이그레이션 가능
- 인증서 keyUsage 강제 적용 필수화(enforce_rsa_key_usage 지원 중단). TLS inspector가 1.0~1.3 범위를 벗어난 클라이언트 TLS 버전을 거부
- Intel DLB 커넥션 밸런서 확장이 소스 아카이브 손상으로 모든 빌드에서 비활성화
- OpenTelemetry 트레이서가 overall_sampling을 포함한 Envoy 자체 샘플링 결정을 우선하게 되어, 내보내는 스팬 수가 줄어들 수 있음
- 통합 DNS 클러스터 구현이 기본값으로 활성화되어, c-ares 리졸버와 qcache를 클러스터 간에 공유할 수 있음
- HeaderMatcher가 개별로 전달된 헤더 값을 쉼표로 결합한 형태뿐 아니라 개별적으로 매칭하도록 변경(기능 게이트로 되돌릴 수 있음)
- 비조치 항목으로는 dynamic modules 확장 포인트와 Rust SDK, MCP/A2A/OpenAI/Anthropic용 신규 Wuffs 기반 스트리밍 JSON 파서, 대역폭 공유 및 서브 필터 체인용 신규 HTTP 필터, CNSA/포스트 퀀텀 TLS 정책, io_uring 및 SO_REUSEPORT BPF 성능 개선, 커넥션 풀 재진입 문제와 DNS 리졸버 누수 등 다수의 버그 수정이 포함됨