Miggo Logo

CVE-2024-45341:
A certificate with a URI which has a IPv6 address with a zone ID may incorrectly satisfy a URI...

6.1

CVSS Score
3.1

Basic Information

EPSS Score
0.05088%
CWE
-
Published
1/28/2025
Updated
2/21/2025
KEV Status
No
Technology
-

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability lies in the incorrect handling of IPv6 addresses with zone IDs within URI name constraints in TLS certificates. I started by trying to fetch commit information from the provided URLs. The Gerrit CL URL (https://go.dev/cl/643099) was the most promising. Although direct fetching of its content and the derived commit SHA failed initially, I manually inspected the Gerrit CL page (https://go-review.googlesource.com/c/go/+/643099/) and identified the changed files and the commit SHA (1937a71983197810957991994880899500c80789). The key modified file is src/crypto/x509/verify.go, and the function checkNameConstraints within it. The patch introduces a helper function stripZone and modifies checkNameConstraints to use this helper to remove the zone ID from an IPv6 host string extracted from a URI before it's used for constraint matching. This directly points to checkNameConstraints as the function containing the vulnerable logic, as it was previously passing the IPv6 address with the zone ID (or an incorrectly processed version of it) to the matching logic. The GO-2025-3373 advisory also lists Certificate.Verify as an affected symbol, which calls checkNameConstraints, further supporting this.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

* **rti*i**t* wit* * URI w*i** **s * IPv* ***r*ss wit* * zon* I* m*y in*orr**tly s*tis*y * URI n*m* *onstr*int t**t *ppli*s to t** **rti*i**t* ***in. **rti*i**t*s *ont*inin* URIs *r* not p*rmitt** in t** w** PKI, so t*is only *****ts us*rs o* priv*t*

Reasoning

T** vuln*r**ility li*s in t** in*orr**t **n*lin* o* IPv* ***r*ss*s wit* zon* I*s wit*in URI n*m* *onstr*ints in TLS **rti*i**t*s. I st*rt** *y tryin* to **t** *ommit in*orm*tion *rom t** provi*** URLs. T** **rrit *L URL (`*ttps://*o.**v/*l/******`) w