blob: 8165e004a58dba009d55e4604afa2732d4df45e0 [file] [log] [blame]
id: GO-2022-0213
modules:
- module: std
versions:
- fixed: 1.12.11
- introduced: 1.13.0-0
- fixed: 1.13.2
vulnerable_at: 1.13.1
packages:
- package: crypto/dsa
symbols:
- Verify
skip_fix: 'TODO: revisit this reason (fix appears to not work with Go <1.18)'
summary: Panic on invalid DSA public keys in crypto/dsa
description: |-
Invalid DSA public keys can cause a panic in dsa.Verify. In particular, using
crypto/x509.Verify on a crafted X.509 certificate chain can lead to a panic,
even if the certificates don't chain to a trusted root. The chain can be
delivered via a crypto/tls connection to a client, or to a server that accepts
and verifies client certificates. net/http clients can be made to crash by an
HTTPS server, while net/http servers that accept client certificates will
recover the panic and are unaffected.
Moreover, an application might crash invoking
crypto/x509.(*CertificateRequest).CheckSignature on an X.509 certificate
request, parsing a golang.org/x/crypto/openpgp Entity, or during a
golang.org/x/crypto/otr conversation. Finally, a golang.org/x/crypto/ssh client
can panic due to a malformed host key, while a server could panic if either
PublicKeyCallback accepts a malformed public key, or if IsUserAuthority accepts
a certificate with a malformed public key.
published: 2022-05-24T20:14:11Z
cves:
- CVE-2019-17596
credits:
- Daniel M
- ragona
references:
- fix: https://go.dev/cl/205441
- fix: https://go.googlesource.com/go/+/552987fdbf4c2bc9641016fd323c3ae5d3a0d9a3
- report: https://go.dev/issue/34960
- web: https://groups.google.com/g/golang-announce/c/lVEm7llp0w0/m/VbafyRkgCgAJ
review_status: REVIEWED