blob: 011e3ff70361412d7b7ec081a856a286dd67a3b0 [file]
id: GO-2025-4007
modules:
- module: std
versions:
- fixed: 1.24.9
- introduced: 1.25.0
- fixed: 1.25.3
vulnerable_at: 1.25.1
packages:
- package: crypto/x509
symbols:
- parseSANExtension
- domainToReverseLabels
derived_symbols:
- CertPool.AppendCertsFromPEM
- Certificate.CheckCRLSignature
- Certificate.CheckSignature
- Certificate.CheckSignatureFrom
- Certificate.CreateCRL
- Certificate.Verify
- CertificateRequest.CheckSignature
- CreateCertificate
- CreateCertificateRequest
- CreateRevocationList
- DecryptPEMBlock
- EncryptPEMBlock
- MarshalECPrivateKey
- MarshalPKCS1PrivateKey
- MarshalPKCS1PublicKey
- MarshalPKCS8PrivateKey
- MarshalPKIXPublicKey
- ParseCRL
- ParseCertificate
- ParseCertificateRequest
- ParseCertificates
- ParseDERCRL
- ParseECPrivateKey
- ParsePKCS1PrivateKey
- ParsePKCS1PublicKey
- ParsePKCS8PrivateKey
- ParsePKIXPublicKey
- ParseRevocationList
- RevocationList.CheckSignatureFrom
- SetFallbackRoots
- SystemCertPool
summary: Quadratic complexity when checking name constraints in crypto/x509
description: |-
Due to the design of the name constraint checking algorithm, the processing time
of some inputs scale non-linearly with respect to the size of the certificate.
This affects programs which validate arbitrary certificate chains.
cves:
- CVE-2025-58187
credits:
- Jakub Ciolek
references:
- report: https://go.dev/issue/75681
- fix: https://go.dev/cl/709854
- web: https://groups.google.com/g/golang-announce/c/4Emdl2iQ_bI
cve_metadata:
id: CVE-2025-58187
cwe: 'CWE-407: Inefficient Algorithmic Complexity'
source:
id: go-security-team
created: 2025-10-28T17:11:16.010552-07:00
review_status: REVIEWED