Hello gophers,

We have just released Go versions 1.25.6 and 1.24.12, minor point releases.

These releases include 6 security fixes following the security policy 
<https://go.dev/doc/security/policy>:

-       archive/zip: denial of service when parsing arbitrary ZIP archives

        archive/zip used a super-linear file name indexing algorithm that is 
invoked the first time a file in an archive is opened. This can lead to a 
denial of service when consuming a maliciously constructed ZIP archive.

        Thanks to Thanks to Jakub Ciolek for reporting this issue.

        This is CVE-2025-61728 and Go issue https://go.dev/issue/77102.

-       net/http: memory exhaustion in Request.ParseForm

        When parsing a URL-encoded form net/http may allocate an unexpected 
amount of
        memory when provided a large number of key-value pairs. This can result 
in a
        denial of service due to memory exhaustion.

        Thanks to jub0bs for reporting this issue.

        This is CVE-2025-61726 and Go issue https://go.dev/issue/77101.

-       crypto/tls: Config.Clone copies automatically generated session ticket 
keys, session resumption does not account for the expiration of full 
certificate chain

        The Config.Clone methods allows cloning a Config which has already been 
passed
        to a TLS function, allowing it to be mutated and reused.

        If Config.SessionTicketKey has not been set, and 
Config.SetSessionTicketKeys has
        not been called, crypto/tls will generate random session ticket keys and
        automatically rotate them. Config.Clone would copy these automatically 
generated
        keys into the returned Config, meaning that the two Configs would share 
session
        ticket keys, allowing sessions created using one Config could be used 
to resume
        sessions with the other Config. This can allow clients to resume 
sessions even
        though the Config may be configured such that they should not be able 
to do so.

        Config.Clone no longer copies the automatically generated session 
ticket keys.
        Config.Clone still copies keys which are explicitly provided, either by 
setting
        Config.SessionTicketKey or by calling Config.SetSessionTicketKeys.

        This issue was discoverd by the Go Security team while investigating 
another
        issue reported by Coia Prant (github.com/rbqvq).

        Additionally, on the server side only the expiration of the leaf 
certificate, if
        one was provided during the initial handshake, was checked when 
considering if a
        session could be resumed. This allowed sessions to be resumed if an 
intermediate
        or root certificate in the chain had expired.

        Session resumption now takes into account of the full chain when 
determining if
        the session can be resumed.

        Thanks to Coia Prant (github.com/rbqvq) for reporting this issue.

        This is CVE-2025-68121 and Go issue https://go.dev/issue/77113.

-       cmd/go: bypass of flag sanitization can lead to arbitrary code execution

        Usage of 'CgoPkgConfig' allowed execution of the pkg-config
        binary with flags that are not explicitly safe-listed.

        To prevent this behavior, compiler flags resulting from usage
        of 'CgoPkgConfig' are sanitized prior to invoking pkg-config.

        Thank you to RyotaK (https://ryotak.net) of GMO Flatt Security Inc.
        for reporting this issue.

        This is CVE-2025-61731 and go.dev/issue/77100.

-       cmd/go: unexpected code execution when invoking toolchain

        The Go toolchain supports multiple VCS which are used retrieving 
modules and
        embedding build information into binaries.

        On systems with Mercurial installed (hg) downloading modules (e.g. via 
go get or
        go mod download) from non-standard sources (e.g. custom domains) can 
cause
        unexpected code execution due to how external VCS commands are 
constructed.

        On systems with Git installed, downloading and building modules with 
malicious
        version strings could allow an attacker to write to arbitrary files on 
the
        system the user has access to. This can only be triggered by explicitly
        providing the malicious version strings to the toolchain, and does not 
affect
        usage of @latest or bare module paths.

        The toolchain now uses safer VCS options to prevent misinterpretation of
        untrusted inputs. In addition, the toolchain now disallows module 
version
        strings prefixed with a "-" or "/" character.

        Thanks to splitline (@splitline) from DEVCORE Research Team for 
reporting this
        issue.

        This is CVE-2025-68119 and Go issue https://go.dev/issue/77099.

-       crypto/tls: handshake messages may be processed at the incorrect 
encryption level

        During the TLS 1.3 handshake if multiple messages are sent in records 
that span
        encryption level boundaries (for instance the Client Hello and Encrypted
        Extensions messages), the subsequent messages may be processed before 
the
        encryption level changes. This can cause some minor information 
disclosure if a
        network-local attacker can inject messages during the handshake.

        Thanks to Coia Prant (github.com/rbqvq) for reporting this issue.

        This is CVE-2025-61730 and Go issue https://go.dev/issue/76443

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

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.25.6 and build as usual.

Thanks to everyone who contributed to the releases.

Cheers,
The Go team

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/a9decf16.BAAACBhEM_kAAAAAAAAAA-p9MGIAAYKKSQYAAAAAADE8OwBpaTkp%40mailjet.com.

Reply via email to