CVE-2026-33810
Go vulnerability analysis and mitigation

Overview

CVE-2026-33810 is a certificate chain validation bypass vulnerability in the Go standard library's crypto/x509 module, classified as Improper Certificate Validation (CWE-295). When verifying a certificate chain containing excluded DNS name constraints, the constraints are not correctly applied to wildcard DNS Subject Alternative Names (SANs) that use a different letter case than the constraint — for example, a constraint for example.com would fail to block a wildcard SAN of *.EXAMPLE.COM. The vulnerability affects Go versions 1.26.0 through 1.26.1 (fixed in 1.26.2) and only impacts validation of certificate chains issued by a trusted root CA in VerifyOptions.Roots or the system certificate pool. It was published on April 8, 2026, with a CVSS v3.1 base score of 8.2 (High) per Feedly/NVD data, though the GitHub Advisory Database scores it 7.5 (High) (GitHub Advisory, Go Advisory).

Technical details

The root cause is a case-sensitivity flaw in the crypto/x509 certificate chain verification logic (CWE-295). When the library evaluates excluded DNS name constraints (defined in X.509 name constraints extensions), it performs a case-sensitive comparison against wildcard DNS SANs, meaning a constraint like excluded: example.com would not match a SAN of *.EXAMPLE.COM or *.Example.Com. RFC 5280 requires DNS name comparisons to be case-insensitive, so this implementation diverges from the standard. The flaw is limited to the excluded subtrees constraint path and only applies to certificate chains rooted in a trusted CA — self-signed or otherwise untrusted chains are not affected. The fix is tracked in the Go issue tracker and code review system (Go CL 763763, Go Issue 78332, GitHub Advisory).

Impact

Successful exploitation allows an attacker who controls a certificate with a wildcard DNS SAN (using a different case than an excluded DNS constraint) to bypass name constraint enforcement, causing a Go application to accept a certificate it should reject. This enables man-in-the-middle (MITM) attacks against TLS connections in applications using Go's crypto/x509 for certificate validation, potentially exposing sensitive data in transit and compromising the integrity of authenticated communications. The confidentiality impact is rated High (unauthorized access to encrypted traffic), with a Low integrity impact (ability to present forged certificates), and no availability impact (GitHub Advisory, Go Advisory). Downstream products built with affected Go versions — including IBM Instana Observability, IBM App Connect Enterprise, and various open-source tools — are also affected and require recompilation (IBM Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation as of the time of this report (GitHub Advisory). The EPSS score is approximately 0.005% (very low probability of exploitation in the next 30 days). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires an attacker to obtain or forge a certificate with a wildcard DNS SAN that differs in case from an excluded constraint, and then position themselves to perform a MITM attack against a target using a vulnerable Go application — a non-trivial precondition (Go Advisory).

Exploitation steps

  1. Identify a target application: Find a Go application (compiled with Go 1.26.0 or 1.26.1) that performs TLS certificate validation using crypto/x509 and relies on excluded DNS name constraints in its trusted CA certificates.
  2. Obtain a certificate with a case-variant wildcard SAN: Acquire or forge a certificate from a trusted CA (or a CA trusted by the target) with a wildcard DNS SAN (e.g., *.EXCLUDED-DOMAIN.COM) that differs in case from the excluded DNS constraint (e.g., excluded: excluded-domain.com).
  3. Position for MITM: Use network-level techniques (ARP spoofing, DNS poisoning, BGP hijacking, or rogue Wi-Fi) to intercept TLS traffic between the target client and a server in the excluded domain.
  4. Present the forged certificate: Serve the case-variant wildcard certificate during the TLS handshake. The vulnerable Go crypto/x509 library will fail to match the excluded constraint due to case sensitivity and accept the certificate as valid.
  5. Intercept traffic: Decrypt and inspect or modify the TLS session, achieving confidentiality and integrity compromise of the communication (GitHub Advisory, Go Advisory).

Indicators of compromise

  • Network: Unexpected TLS certificates presented to Go-based services with wildcard SANs using mixed or uppercase domain names that should be excluded by name constraints; TLS handshakes completing successfully for domains that should be blocked by certificate policy.
  • Logs: Application TLS connection logs showing successful certificate validation for domains matching excluded DNS constraint patterns (with case differences); certificate details in logs showing SANs like *.DOMAIN.COM where domain.com is in the excluded subtrees.
  • File System: Go binaries with build metadata indicating Go version 1.26.0 or 1.26.1 (detectable via go version -m <binary> or govulncheck); presence of unpatched Go toolchain installations.
  • Process: Use of govulncheck against deployed Go binaries to identify those linked against the vulnerable crypto/x509 package (oss-security).

Mitigation and workarounds

The primary remediation is to upgrade Go to version 1.26.2 or later, which contains the fix for this vulnerability (Go Advisory, Go CL 763763). For Azure Linux 3 systems, Microsoft has released patched packages azl3_golang_1.26.1-1 and azl3_golang_1.25.8-1 (Microsoft MSRC). Critically, all Go applications compiled with the affected versions (1.26.0–1.26.1) must be recompiled with the patched Go toolchain, as the vulnerability is in the statically linked standard library — updating the Go runtime alone is insufficient for already-compiled binaries. Use govulncheck to identify which deployed binaries are affected, and prioritize rebuilding applications that perform TLS certificate validation with name constraints (oss-security). IBM has issued advisories for affected products including Instana Observability and App Connect Enterprise (IBM Advisory).

Community reactions

The Go security team announced the fix as part of the Go 1.26.2 and Go 1.25.9 releases, which addressed 10 security fixes in total (golang-announce). Discussion on the oss-security mailing list highlighted a broader concern about the propagation of Go standard library CVEs into compiled binaries distributed by Linux distributions and open-source projects, with community members noting that many distributions (Debian, Ubuntu, Alma) had not yet recompiled affected Go applications (oss-security). Dimitri Ledkov noted that Wolfi and Chainguard had already triggered over 400 rebuilds for this CVE and advocated for symbol-level CVE tracking in govulncheck to reduce unnecessary mass rebuilds (oss-security). Multiple downstream projects including rclone, Portainer, CloudNativePG, and CoreDNS issued updated releases incorporating the patched Go toolchain.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

golang-1.19

Fixed

sid

golang-1.26: 1.26.2-1

Fixed

trixie

golang-1.24

Fixed

Ubuntu

Unknown

bionic (esm-apps)

golang-1.8

Unknown

bionic (esm-infra)

golang-1.10

Unknown

devel

golang-1.23

Unknown

focal (esm-apps)

golang-1.16

Unknown

focal (esm-infra)

golang-1.13

Unknown

jammy

golang-1.13

Unknown

jammy (esm-apps)

golang-1.13

Unknown

noble

golang-1.21

Unknown

RHEL / CentOS

Fixed

OpenShift

el9:openshift-builds/openshift-builds-waiters-rhel9-0:1.6.4

Fixed

RHEL 8

:appstream:container-tools:rhel8:8060020260803064027:ad008a3a/podman-0:8060020260803064027.ad008a3a.src

Fixed

RHEL 9

:appstream:golang-0:1.26.5-1.el9_2.src

Fixed

RHEL 10

delve-0:1.26.1-1.el10_0.src

Fixed

Alpine

Fixed

edge

go: 1.26.2-r0, 1.73.5-r0

Fixed

v3.23

go: 1.25.9-r0

Fixed

SourceThis report was generated using AI

Related Go vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-56865HIGH8.4
  • Go logoGo
  • gitlab-cng-19.1
NoYesAug 13, 2026
CVE-2026-56864HIGH7.5
  • Go logoGo
  • kyverno-readiness-checker-1.17
NoYesAug 13, 2026
CVE-2026-56862HIGH7.5
  • Go logoGo
  • kepler-fips
NoYesAug 13, 2026
CVE-2026-56859HIGH7.5
  • Go logoGo
  • grafana-elasticsearch
NoYesAug 13, 2026
CVE-2026-56860MEDIUM5.9
  • Go logoGo
  • crossplane-provider-aws-cur-fips
NoYesAug 13, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management