From 0aed907a8689a9f095c056e8560a4dde28e2ae6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Tue, 7 Oct 2025 21:41:24 +0200 Subject: [PATCH] update to go1.24.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This minor release includes 10 security fixes following the security policy: - net/mail: excessive CPU consumption in ParseAddress The ParseAddress function constructed domain-literal address components through repeated string concatenation. When parsing large domain-literal components, this could cause excessive CPU consumption. Thanks to Philippe Antoine (Catena cyber) for reporting this issue. This is CVE-2025-61725 and Go issue https://go.dev/issue/75680. - crypto/x509: quadratic complexity when checking name constraints Due to the design of the name constraint checking algorithm, the processing time of some inputs scales non-linearly with respect to the size of the certificate. This affects programs which validate arbitrary certificate chains. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2025-58187 and Go issue https://go.dev/issue/75681. - crypto/tls: ALPN negotiation errors can contain arbitrary text The crypto/tls conn.Handshake method returns an error on the server-side when ALPN negotation fails which can contain arbitrary attacker controlled information provided by the client-side of the connection which is not escaped. This affects programs which log these errors without any additional form of sanitization, and may allow injection of attacker controlled information into logs. Thanks to National Cyber Security Centre Finland for reporting this issue. This is CVE-2025-58189 and Go issue https://go.dev/issue/75652. - encoding/pem: quadratic complexity when parsing some invalid inputs Due to the design of the PEM parsing function, the processing time for some inputs scales non-linearly with respect to the size of the input. This affects programs which parse untrusted PEM inputs. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2025-61723 and Go issue https://go.dev/issue/75676. - net/url: insufficient validation of bracketed IPv6 hostnames The Parse function permitted values other than IPv6 addresses to be included in square brackets within the host component of a URL. RFC 3986 permits IPv6 addresses to be included within the host component, enclosed within square brackets. For example: "http://[::1]/". IPv4 addresses and hostnames must not appear within square brackets. Parse did not enforce this requirement. Thanks to Enze Wang, Jingcheng Yang and Zehui Miao of Tsinghua University for reporting this issue. This is CVE-2025-47912 and Go issue https://go.dev/issue/75678. - encoding/asn1: pre-allocating memory when parsing DER payload can cause memory exhaustion When parsing DER payloads, memories were being allocated prior to fully validating the payloads. This permits an attacker to craft a big empty DER payload to cause memory exhaustion in functions such as asn1.Unmarshal, x509.ParseCertificateRequest, and ocsp.ParseResponse. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2025-58185 and Go issue https://go.dev/issue/75671. - net/http: lack of limit when parsing cookies can cause memory exhaustion Despite HTTP headers having a default limit of 1 MB, the number of cookies that can be parsed did not have a limit. By sending a lot of very small cookies such as "a=;", an attacker can make an HTTP server allocate a large amount of structs, causing large memory consumption. net/http now limits the number of cookies accepted to 3000, which can be adjusted using the httpcookiemaxnum GODEBUG option. Thanks to jub0bs for reporting this issue. This is CVE-2025-58186 and Go issue https://go.dev/issue/75672. - crypto/x509: panic when validating certificates with DSA public keys Validating certificate chains which contain DSA public keys can cause programs to panic, due to a interface cast that assumes they implement the Equal method. This affects programs which validate arbitrary certificate chains. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2025-58188 and Go issue https://go.dev/issue/75675. - archive/tar: unbounded allocation when parsing GNU sparse map tar.Reader did not set a maximum size on the number of sparse region data blocks in GNU tar pax 1.0 sparse files. A maliciously-crafted archive containing a large number of sparse regions could cause a Reader to read an unbounded amount of data from the archive into memory. When reading from a compressed source, a small compressed input could result in large allocations. Thanks to Harshit Gupta (Mr HAX) - https://www.linkedin.com/in/iam-harshit-gupta/ for reporting this issue. This is CVE-2025-58183 and Go issue https://go.dev/issue/75677. - net/textproto: excessive CPU consumption in Reader.ReadResponse The Reader.ReadResponse function constructed a response string through repeated string concatenation of lines. When the number of lines in a response is large, this could cause excessive CPU consumption. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2025-61724 and Go issue https://go.dev/issue/75716. Signed-off-by: Paweł Gronowski --- .github/workflows/.test-unit.yml | 2 +- .github/workflows/.test.yml | 2 +- .github/workflows/.vm.yml | 2 +- .github/workflows/.windows.yml | 2 +- .github/workflows/arm64.yml | 2 +- .github/workflows/buildkit.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/test.yml | 2 +- .golangci.yml | 2 +- Dockerfile | 2 +- Dockerfile.simple | 2 +- Dockerfile.windows | 2 +- TESTING.md | 2 +- hack/dockerfiles/generate-files.Dockerfile | 2 +- hack/dockerfiles/govulncheck.Dockerfile | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/.test-unit.yml b/.github/workflows/.test-unit.yml index eab3c41171..922f84a53e 100644 --- a/.github/workflows/.test-unit.yml +++ b/.github/workflows/.test-unit.yml @@ -16,7 +16,7 @@ on: workflow_call: env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" GOTESTLIST_VERSION: v0.3.1 TESTSTAT_VERSION: v0.1.25 SETUP_BUILDX_VERSION: edge diff --git a/.github/workflows/.test.yml b/.github/workflows/.test.yml index 051269f882..c74f62d3ba 100644 --- a/.github/workflows/.test.yml +++ b/.github/workflows/.test.yml @@ -21,7 +21,7 @@ on: default: "graphdriver" env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" GOTESTLIST_VERSION: v0.3.1 TESTSTAT_VERSION: v0.1.25 ITG_CLI_MATRIX_SIZE: 6 diff --git a/.github/workflows/.vm.yml b/.github/workflows/.vm.yml index 8e1915e938..0ca13fce22 100644 --- a/.github/workflows/.vm.yml +++ b/.github/workflows/.vm.yml @@ -20,7 +20,7 @@ on: type: string env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" TESTSTAT_VERSION: v0.1.25 jobs: diff --git a/.github/workflows/.windows.yml b/.github/workflows/.windows.yml index cfc16a1b6f..874ee8b902 100644 --- a/.github/workflows/.windows.yml +++ b/.github/workflows/.windows.yml @@ -28,7 +28,7 @@ on: default: false env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" GOTESTLIST_VERSION: v0.3.1 TESTSTAT_VERSION: v0.1.25 WINDOWS_BASE_IMAGE: mcr.microsoft.com/windows/servercore diff --git a/.github/workflows/arm64.yml b/.github/workflows/arm64.yml index 5ae597cf46..2a6fd25d27 100644 --- a/.github/workflows/arm64.yml +++ b/.github/workflows/arm64.yml @@ -23,7 +23,7 @@ on: pull_request: env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" TESTSTAT_VERSION: v0.1.25 DESTDIR: ./build SETUP_BUILDX_VERSION: edge diff --git a/.github/workflows/buildkit.yml b/.github/workflows/buildkit.yml index b5644a9e7d..4a93eac384 100644 --- a/.github/workflows/buildkit.yml +++ b/.github/workflows/buildkit.yml @@ -23,7 +23,7 @@ on: pull_request: env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" DESTDIR: ./build SETUP_BUILDX_VERSION: edge SETUP_BUILDKIT_IMAGE: moby/buildkit:latest diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a4ce42e528..c161ac1ca9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -33,7 +33,7 @@ on: - cron: '0 9 * * 4' env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" jobs: codeql: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a1b3ae1ffb..cae8ab0725 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ on: pull_request: env: - GO_VERSION: "1.24.7" + GO_VERSION: "1.24.8" GIT_PAGER: "cat" PAGER: "cat" SETUP_BUILDX_VERSION: edge diff --git a/.golangci.yml b/.golangci.yml index 6d1377da65..97e4a674ec 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,7 +3,7 @@ version: "2" run: # prevent golangci-lint from deducting the go version to lint for through go.mod, # which causes it to fallback to go1.17 semantics. - go: "1.24.7" + go: "1.24.8" concurrency: 2 # Only supported with go modules enabled (build flag -mod=vendor only valid when using modules) # modules-download-mode: vendor diff --git a/Dockerfile b/Dockerfile index 6d78fff462..ff8c615d86 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG GO_VERSION=1.24.7 +ARG GO_VERSION=1.24.8 ARG BASE_DEBIAN_DISTRO="bookworm" ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" diff --git a/Dockerfile.simple b/Dockerfile.simple index 60907cc526..fcab5a51a9 100644 --- a/Dockerfile.simple +++ b/Dockerfile.simple @@ -5,7 +5,7 @@ # This represents the bare minimum required to build and test Docker. -ARG GO_VERSION=1.24.7 +ARG GO_VERSION=1.24.8 ARG BASE_DEBIAN_DISTRO="bookworm" ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" diff --git a/Dockerfile.windows b/Dockerfile.windows index b18e689835..a945c89205 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -161,7 +161,7 @@ FROM ${WINDOWS_BASE_IMAGE}:${WINDOWS_BASE_IMAGE_TAG} # Use PowerShell as the default shell SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] -ARG GO_VERSION=1.24.7 +ARG GO_VERSION=1.24.8 # GOTESTSUM_VERSION is the version of gotest.tools/gotestsum to install. ARG GOTESTSUM_VERSION=v1.12.3 diff --git a/TESTING.md b/TESTING.md index 9811924421..f9185d58b9 100644 --- a/TESTING.md +++ b/TESTING.md @@ -133,5 +133,5 @@ You can change a version of golang used for building stuff that is being tested by setting `GO_VERSION` variable, for example: ```bash -make GO_VERSION=1.24.7 test +make GO_VERSION=1.24.8 test ``` diff --git a/hack/dockerfiles/generate-files.Dockerfile b/hack/dockerfiles/generate-files.Dockerfile index 308eb6b17a..f877b5ef55 100644 --- a/hack/dockerfiles/generate-files.Dockerfile +++ b/hack/dockerfiles/generate-files.Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG GO_VERSION=1.24.7 +ARG GO_VERSION=1.24.8 ARG BASE_DEBIAN_DISTRO="bookworm" ARG PROTOC_VERSION=3.11.4 diff --git a/hack/dockerfiles/govulncheck.Dockerfile b/hack/dockerfiles/govulncheck.Dockerfile index 74ef011783..0712bc69e6 100644 --- a/hack/dockerfiles/govulncheck.Dockerfile +++ b/hack/dockerfiles/govulncheck.Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG GO_VERSION=1.24.7 +ARG GO_VERSION=1.24.8 ARG GOVULNCHECK_VERSION=v1.1.4 ARG FORMAT=text