CVE-2026-47778
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.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 4.4
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
- EPSS probability
- 0.21%
- CWE
- CWE-158
- Published
- 2026-06-26
- Last modified
- 2026-06-27
Affected products
- envoyproxy envoy
- envoyproxy envoy
- envoyproxy envoy
- envoyproxy envoy
Weakness type
Related vulnerabilities
- CVE-2026-76354 — Path Traversal through Search Head Clustering in Splunk Enterprise
- CVE-2026-70603 — Electron: shell.openPath path validation bypass via embedded null byte
- CVE-2026-43895 — jq: Embedded NUL in jq import paths causes local redaction-policy bypass and preserves sensitive fields in published artifacts
- CVE-2026-41256 — jq: Embedded NUL truncates top-level jq programs loaded with -f
- CVE-2026-43861 — mutt before 2.3.2 does not check for '\0' in url_pct_decode.
- CVE-2026-43859 — mutt before 2.3.2 sometimes uses strfcpy instead of memcpy for the IMAP auth_cram MD5 digest.
- CVE-2026-33191 — free5GC UDM vulnerable to null byte injection in URL path parameters causing 500 Internal Server Error
- CVE-2026-4359 — Heap-buffer-over-read in _mongoc_http_send via strstr on non-null-terminated buffer