[security] Go 1.22.1 and Go 1.21.8 are released

6,758 views
Skip to first unread message

anno...@golang.org

unread,
Mar 5, 2024, 1:05:44 PMMar 5
to golan...@googlegroups.com

Hello gophers,

We have just released Go versions 1.22.1 and 1.21.8, minor point releases.

These minor releases include 5 security fixes following the security policy:

  • crypto/x509: Verify panics on certificates with an unknown public key algorithm

    Verifying a certificate chain which contains a certificate with an unknown public
    key algorithm will cause Certificate.Verify to panic.

    This affects all crypto/tls clients, and servers that set Config.ClientAuth to
    VerifyClientCertIfGiven or RequireAndVerifyClientCert. The default behavior is
    for TLS servers to not verify client certificates.

    Thanks to John Howard (Google) for reporting this issue.

    This is CVE-2024-24783 and Go issue https://go.dev/issue/65390.

  • net/http: memory exhaustion in Request.ParseMultipartForm

    When parsing a multipart form (either explicitly with Request.ParseMultipartForm or implicitly with Request.FormValue, Request.PostFormValue, or Request.FormFile), limits on the total size of the parsed form were not applied to the memory consumed while reading a single form line. This permitted a maliciously crafted input containing very long lines to cause allocation of arbitrarily large amounts of memory, potentially leading to memory exhaustion.

    ParseMultipartForm now correctly limits the maximum size of form lines.

    Thanks to Bartek Nowotarski for reporting this issue.

    This is CVE-2023-45290 and Go issue https://go.dev/issue/65383.

  • net/http, net/http/cookiejar: incorrect forwarding of sensitive headers and cookies on HTTP redirect

    When following an HTTP redirect to a domain which is not a subdomain match or exact match of the initial domain, an http.Client does not forward sensitive headers such as "Authorization" or "Cookie". For example, a redirect from foo.com to www.foo.com will forward the Authorization header, but a redirect to bar.com will not.

    A maliciously crafted HTTP redirect could cause sensitive headers to be unexpectedly forwarded.

    Thanks to Juho Nurminen of Mattermost for reporting this issue.

    This is CVE-2023-45289 and Go issue https://go.dev/issue/65065.

  • html/template: errors returned from MarshalJSON methods may break template escaping

    If errors returned from MarshalJSON methods contain user controlled data, they
    may be used to break the contextual auto-escaping behavior of the html/template
    package, allowing for subsequent actions to inject unexpected content into
    templates.

    Thanks to RyotaK (https://ryotak.net) for reporting this issue.

    This is CVE-2024-24785 and Go issue https://go.dev/issue/65697.

  • net/mail: comments in display names are incorrectly handled

    The ParseAddressList function incorrectly handles comments (text within parentheses) within display names. Since this is a misalignment with conforming address parsers, it can result in different trust decisions being made by programs using different parsers.

    Thanks to Juho Nurminen of Mattermost and Slonser (https://github.com/Slonser) for reporting this issue.

    This is CVE-2024-24784 and Go issue https://go.dev/issue/65083.

View the release notes for more information:
https://go.dev/doc/devel/release#go1.22.1

You can download binary and source distributions from the Go website:
https://go.dev/dl/

To compile from source using a Git clone, update to the release with
git checkout go1.22.1 and build as usual.

Thanks to everyone who contributed to the releases.

Cheers,
Michael and Carlos for the Go team

Reply all
Reply to author
Forward
0 new messages