Hello gophers,
We have just released go1.24rc2, a release candidate version of Go 1.24.
This release candidate includes 4 security fixes following the security policy:
crypto/x509: usage of IPv6 zone IDs can bypass URI name constraints
A certificate with a URI which has a IPv6 address with a zone ID may
incorrectly satisfy a URI name constraint that applies to the certificate
chain.
Certificates containing URIs are not permitted in the web PKI, so this
only affects users of private PKIs which make use of URIs.
Thanks to Juho Forsén of Mattermost for reporting this issue.
This is CVE-2024-45341 and Go issue https://go.dev/issue/71156.
net/http: sensitive headers incorrectly sent after cross-domain redirect
The HTTP client drops sensitive headers after following a cross-domain redirect.
For example, a request to a.com/ containing an Authorization header which is
redirected to b.com/ will not send that header to b.com.
In the event that the client received a subsequent same-domain redirect, however,
the sensitive headers would be restored. For example, a chain of redirects from
a.com/, to b.com/1, and finally to b.com/2 would incorrectly send the Authorization
header to b.com/2.
Thanks to Kyle Seely for reporting this issue.
This is CVE-2024-45336 and Go issue https://go.dev/issue/70530.
cmd/go: GOAUTH credential leak
Credentials provided via the new GOAUTH feature were not being properly
segmented by domain, allowing a malicious server to request credentials they
should not have access to. By default, unless otherwise set, this only affected
credentials stored in the users .netrc file.
Thanks to Juho Forsén of Mattermost for reporting this issue.
This is CVE-2024-45340 and Go issue https://go.dev/issue/71249.
crypto/x509: ParsePKCS1PrivateKey panic with partial keys
Using ParsePKCS1PrivateKey to parse a RSA key that is missing the CRT values would panic
when verifying that the key is well formed.
Thanks to Philippe Antoine (Catena cyber) for reporting this issue.
This is CVE-2025-22865 and Go issue https://go.dev/issue/71216.
Please try your production load tests and unit tests with the new version. Your help testing these pre-release versions is invaluable.
Report any problems using the issue tracker: https://go.dev/issue/new
If you have Go installed already, an easy way to try go1.24rc2 is by using the go command:
$ go install golang.org/dl/go1.24rc2@latest
$ go1.24rc2 download
You can download binary and source distributions from the usual place: https://go.dev/dl/#go1.24rc2
To find out what has changed in Go 1.24, read the draft release notes: https://tip.golang.org/doc/go1.24
Cheers,
Michael and Michael for the Go team