🔍 CVE-2026-47778

4.4
CVSS Score
MEDIUM
2026-06-26
2026-10-25 17:10
✅ 완료

🇰🇷 한글 설명

Envoy 프록시의 DefaultCertValidator::verifySubjectAltName 함수에서 구조적 결함이 발견되었습니다. 공격자가 NUL 바이트가 포함된 dNSName SAN을 가진 인증서를 제공할 경우, .c_str() 호출 시 문자열이 조기에 절단되어 잘못된 인증 검증이 수행될 수 있습니다.

💡 쉬운 설명

인증서 이름에 특수 문자(NUL 바이트)를 섞어 넣으면, 보안 검사 과정에서 이름이 중간에 잘린 채로 확인되는 취약점입니다. 이를 통해 공격자는 실제로는 일치하지 않는 가짜 인증서를 통과시켜 시스템에 접근할 수 있습니다.

🇺🇸 원문 (English)

Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, a structural flaw was identified in DefaultCertValidator::verifySubjectAltName where the extracted DNS SAN string is cast to a C-style string using .c_str() before being passed to the Utility::dnsNameMatch() algorithm. If the attacker serves a certificate with a dNSName SAN containing an embedded NUL byte, the helper Utility::generalNameAsString captures the complete string including the NUL. However, when .c_str() evaluates it, implicit conversion to absl::string_view inside dnsNameMatch relies on strlen(), prematurely truncating the evaluation context. Envoy evaluates trucated string against the exact required config_san match and returns true, thereby successfully validating the string with the Nul byte for an upstream routing. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.

📍 영향받는 시스템

Envoy versions prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1

⚔️ 공격 벡터

NUL 바이트가 포함된 dNSName SAN을 가진 악성 인증서를 서버에 제공하여 인증 검증 우회

🛡️ 대응 방법

Envoy를 최신 패치 버전(1.35.11, 1.36.7, 1.37.3, 1.38.1 이상)으로 업데이트

🔧 검증 코드

명령어 결과에 패치된 버전 번호가 나타나면 취약점이 해결된 상태입니다.

Shell / Script
envoy --version | grep -E 'v(1.35.11|1.36.7|1.37.3|1.38.1)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N

💻 영향받는 소프트웨어

Envoy