[release/2.2 backport] update to go1.25.8, test go1.26.1#13011
Merged
estesp merged 1 commit intocontainerd:release/2.2from Mar 11, 2026
Merged
[release/2.2 backport] update to go1.25.8, test go1.26.1#13011estesp merged 1 commit intocontainerd:release/2.2from
estesp merged 1 commit intocontainerd:release/2.2from
Conversation
go1.25.8 (released 2026-03-05) includes security fixes to the html/template, net/url, and os packages, as well as bug fixes to the go command, the compiler, and the os package. See the Go 1.25.8 milestone on our issue tracker for details. - 1.25.8 https://github.com/golang/go/issues?q=milestone%3AGo1.25.8+label%3ACherryPickApproved - diff: golang/go@go1.25.7...go1.25.8 - 1.26.1 https://github.com/golang/go/issues?q=milestone%3AGo1.26.1+label%3ACherryPickApproved - diff: golang/go@go1.26.0...go1.26.1 --- We have just released Go versions 1.26.1 and 1.25.8, minor point releases. These releases include 5 security fixes following the security policy: crypto/x509: incorrect enforcement of email constraints - When verifying a certificate chain which contains a certificate containing multiple email address constraints (composed of the full email address) which share common local portions (the portion of the address before the '@' character) but different domain portions (the portion of the address after the '@' character), these constraints will not be properly applied, and only the last constraint will be considered. This can allow certificates in the chain containing email addresses which are either not permitted or excluded by the relevant constraints to be returned by calls to Certificate.Verify. Since the name constraint checks happen after chain building is complete, this only applies to certificate chains which chain to trusted roots (root certificates either in VerifyOptions.Roots or in the system root certificate pool), requiring a trusted CA to issue certificates containing either not permitted or excluded email addresses. This issue only affects Go 1.26. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2026-27137 and Go issue https://go.dev/issue/77952. - crypto/x509: panic in name constraint checking for malformed certificates Certificate verification can panic when a certificate in the chain has an empty DNS name and another certificate in the chain has excluded name constraints. This can crash programs that are either directly verifying X.509 certificate chains, or those that use TLS. Since the name constraint checks happen after chain building is complete, this only applies to certificate chains which chain to trusted roots (root certificates either in VerifyOptions.Roots or in the system root certificate pool), requiring a trusted CA to issue certificates containing malformed DNS names. This issue only affects Go 1.26. Thanks to Jakub Ciolek for reporting this issue. This is CVE-2026-27138 and Go issue https://go.dev/issue/77953. - html/template: URLs in meta content attribute actions are not escaped Actions which insert URLs into the content attribute of HTML meta tags are not escaped. This can allow XSS if the meta tag also has an http-equiv attribute with the value "refresh". A new GODEBUG setting has been added, htmlmetacontenturlescape, which can be used to disable escaping URLs in actions in the meta content attribute which follow "url=" by setting htmlmetacontenturlescape=0. This is CVE-2026-27142 and Go issue https://go.dev/issue/77954. - net/url: reject IPv6 literal not at start of host The Go standard library function net/url.Parse insufficiently validated the host/authority component and accepted some invalid URLs by effectively treating garbage before an IP-literal as ignorable. The function should have rejected this as invalid. To prevent this behavior, net/url.Parse now rejects IPv6 literals that do not appear at the start of the host subcomponent of a URL. Thanks to Masaki Hara (https://github.com/qnighy) of Wantedly. This is CVE-2026-25679 and Go issue https://go.dev/issue/77578. - os: FileInfo can escape from a Root On Unix platforms, when listing the contents of a directory using File.ReadDir or File.Readdir the returned FileInfo could reference a file outside of the Root in which the File was opened. The contents of the FileInfo were populated using the lstat system call, which takes the path to the file as a parameter. If a component of the full path of the file described by the FileInfo is replaced with a symbolic link, the target of the lstat can be directed to another location on the filesystem. The impact of this escape is limited to reading metadata provided by lstat from arbitrary locations on the filesystem. This could be used to probe for the presence or absence of files as well as gleaning metadata like file sizes, but does not permit reading or writing files outside the root. The FileInfo is now populated using fstatat. Thank you to Miloslav Trmač of Red Hat for reporting this issue. This is CVE-2026-27139 and Go issue https://go.dev/issue/77827. Signed-off-by: Sebastiaan van Stijn <[email protected]> (cherry picked from commit 38b3e4c) Signed-off-by: Sebastiaan van Stijn <[email protected]>
estesp
approved these changes
Mar 11, 2026
austinvazquez
approved these changes
Mar 11, 2026
jaredledvina
added a commit
to DataDog/containerd
that referenced
this pull request
Apr 22, 2026
containerd 2.2.3 Welcome to the v2.2.3 release of containerd! The third patch release for containerd 2.2 contains various fixes and updates including a security patch. * **spdystream** * [**CVE-2026-35469**](GHSA-pc3f-x583-g7j2) * Preserve cgroup mount options for privileged containers ([containerd#13120](containerd#13120)) * Ensure UpdatePodSandbox returns Unimplemented instead of a generic error ([containerd#13023](containerd#13023)) * Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 ([containerd#13015](containerd#13015)) * Enable mount manager in diff walking to fix layer extraction errors with some snapshotters (e.g., EROFS) ([containerd#13198](containerd#13198)) * Apply hardening to prevent TOCTOU race during tar extraction ([containerd#12971](containerd#12971)) * Restore support for client-mounted roots in Windows containers using process isolation ([containerd#13195](containerd#13195)) * Update runc to v1.3.5 ([containerd#13061](containerd#13061)) * Apply absolute symlink resolution to /etc/group in OCI spec to fix lookups on NixOS-style systems ([containerd#13019](containerd#13019)) * Handle absolute symlinks in rootfs user lookup to fix regressions when using Go 1.24 ([containerd#13015](containerd#13015)) * Fix bug that caused whiteouts to be ignored when parallel unpack was used ([containerd#13125](containerd#13125)) Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. * Samuel Karp * Sebastiaan van Stijn * Maksym Pavlenko * Chris Henzie * Derek McGowan * Paulo Oliveira * Henry Wang * Phil Estes * Wei Fu * Akihiro Suda * Gao Xiang * Ricardo Branco * Shachar Tal <details><summary>40 commits</summary> <p> * Prepare release notes for v2.2.3 ([containerd#13224](containerd#13224)) * [`8a0f4ed5d`](containerd@8a0f4ed) Prepare release notes for v2.2.3 * update github.com/moby/spdystream v0.5.1 ([containerd#13217](containerd#13217)) * [`31bd34a06`](containerd@31bd34a) update github.com/moby/spdystream v0.5.1 * vendor: github.com/klauspost/compress v1.18.5 ([containerd#13197](containerd#13197)) * [`1336f6c45`](containerd@1336f6c) vendor: github.com/klauspost/compress v1.18.5 * diff/walking: enable mount manager ([containerd#13198](containerd#13198)) * [`409f75be8`](containerd@409f75b) diff/walking: enable mount manager * update runhcs to v0.14.1 ([containerd#13195](containerd#13195)) * [`3f33146c1`](containerd@3f33146) update runhcs to v0.14.1 * vendor: github.com/Microsoft/hcsshim v0.14.1 ([containerd#13196](containerd#13196)) * [`8bd1b74e5`](containerd@8bd1b74) vendor: github.com/Microsoft/hcsshim v0.14.1 * [`c6b0be8e1`](containerd@c6b0be8) vendor: github.com/Microsoft/hcsshim v0.14.0 * update to Go 1.25.9, 1.26.2 ([containerd#13190](containerd#13190)) * [`2ecde8cfe`](containerd@2ecde8c) update to Go 1.25.9, 1.26.2 * Skip TestExportAndImportMultiLayer on s390x ([containerd#13154](containerd#13154)) * [`be554f478`](containerd@be554f4) Skip TestExportAndImportMultiLayer on s390x * Tweak mount info for overlayfs in case of parallel unpack ([containerd#13125](containerd#13125)) * [`660de195b`](containerd@660de19) Tweak mount info for overlayfs in case of parallel unpack * [`bc9274a4b`](containerd@bc9274a) Add integration test for issue 13030 * Preserve cgroup mount options for privileged containers ([containerd#13120](containerd#13120)) * [`c387890b5`](containerd@c387890) Add integration test for privileged container cgroup mounts * [`047a335a6`](containerd@047a335) Forward RUNC_FLAVOR env var down to integration tests * [`9b2d72ee0`](containerd@9b2d72e) Preserve host cgroup mount options for privileged containers * [`5b66cd6a0`](containerd@5b66cd6) Move cgroup namespace placement higher in spec builder * update runc binary to v1.3.5 ([containerd#13061](containerd#13061)) * [`584205c2f`](containerd@584205c) [release/2.2] update runc binary to v1.3.5 * Fix vagrant on CI ([containerd#13066](containerd#13066)) * [`77c6886df`](containerd@77c6886) Ignore NOCHANGE error * Fix TOCTOU race bug in tar extraction ([containerd#12971](containerd#12971)) * [`fbed68b8f`](containerd@fbed68b) Fix TOCTOU race bug in tar extraction * cri: UpdatePodSandbox should return Unimplemented ([containerd#13023](containerd#13023)) * [`a83510103`](containerd@a835101) cri: UpdatePodSandbox should return Unimplemented * fix(oci): apply absolute symlink resolution to /etc/group ([containerd#13019](containerd#13019)) * [`ee4179e52`](containerd@ee4179e) fix(oci): apply absolute symlink resolution to /etc/group * fix(oci): handle absolute symlinks in rootfs user lookup ([containerd#13015](containerd#13015)) * [`fd061b848`](containerd@fd061b8) test(oci): use fstest and mock fs for better symlink coverage * [`5d44d2c22`](containerd@5d44d2c) fix(oci): handle absolute symlinks in rootfs user lookup * update to go1.25.8, test go1.26.1 ([containerd#13011](containerd#13011)) * [`00c776f07`](containerd@00c776f) update to go1.25.8, test go1.26.1 </p> </details> * **github.com/Microsoft/hcsshim** v0.14.0-rc.1 -> v0.14.1 * **github.com/klauspost/compress** v1.18.1 -> v1.18.5 * **github.com/moby/spdystream** v0.5.0 -> v0.5.1 Previous release can be found at [v2.2.2](https://github.com/containerd/containerd/releases/tag/v2.2.2) * `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`: ✅Recommended. Dynamically linked with glibc 2.35 (Ubuntu 22.04). * `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`: Statically linked. Expected to be used on Linux distributions that do not use glibc >= 2.35. Not position-independent. In addition to containerd, typically you will have to install [runc](https://github.com/opencontainers/runc/releases) and [CNI plugins](https://github.com/containernetworking/plugins/releases) from their official sites too. See also the [Getting Started](https://github.com/containerd/containerd/blob/main/docs/getting-started.md) documentation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
go1.25.8 (released 2026-03-05) includes security fixes to the html/template, net/url, and os packages, as well as bug fixes to the go command, the compiler, and the os package. See the Go 1.25.8 milestone on our issue tracker for details.
We have just released Go versions 1.26.1 and 1.25.8, minor point releases.
These releases include 5 security fixes following the security policy:
crypto/x509: incorrect enforcement of email constraints
When verifying a certificate chain which contains a certificate containing multiple email address constraints (composed of the full email address) which share common local portions (the portion of the address before the '@' character) but different domain portions (the portion of the address after the '@' character), these constraints will not be properly applied, and only the last constraint will be considered.
This can allow certificates in the chain containing email addresses which are either not permitted or excluded by the relevant constraints to be returned by calls to Certificate.Verify. Since the name constraint checks happen after chain building is complete, this only applies to certificate chains which chain to trusted roots (root certificates either in VerifyOptions.Roots or in the system root certificate pool), requiring a trusted CA to issue certificates containing either not permitted or excluded email addresses.
This issue only affects Go 1.26.
Thanks to Jakub Ciolek for reporting this issue.
This is CVE-2026-27137 and Go issue https://go.dev/issue/77952.
crypto/x509: panic in name constraint checking for malformed certificates
Certificate verification can panic when a certificate in the chain has an empty DNS name and another certificate in the chain has excluded name constraints. This can crash programs that are either directly verifying X.509 certificate chains, or those that use TLS.
Since the name constraint checks happen after chain building is complete, this only applies to certificate chains which chain to trusted roots (root certificates either in VerifyOptions.Roots or in the system root certificate pool), requiring a trusted CA to issue certificates containing malformed DNS names.
This issue only affects Go 1.26.
Thanks to Jakub Ciolek for reporting this issue.
This is CVE-2026-27138 and Go issue https://go.dev/issue/77953.
html/template: URLs in meta content attribute actions are not escaped
Actions which insert URLs into the content attribute of HTML meta tags are not escaped. This can allow XSS if the meta tag also has an http-equiv attribute with the value "refresh".
A new GODEBUG setting has been added, htmlmetacontenturlescape, which can be used to disable escaping URLs in actions in the meta content attribute which follow "url=" by setting htmlmetacontenturlescape=0.
This is CVE-2026-27142 and Go issue https://go.dev/issue/77954.
net/url: reject IPv6 literal not at start of host
The Go standard library function net/url.Parse insufficiently validated the host/authority component and accepted some invalid URLs by effectively treating garbage before an IP-literal as ignorable. The function should have rejected this as invalid.
To prevent this behavior, net/url.Parse now rejects IPv6 literals that do not appear at the start of the host subcomponent of a URL.
Thanks to Masaki Hara (https://github.com/qnighy) of Wantedly.
This is CVE-2026-25679 and Go issue https://go.dev/issue/77578.
os: FileInfo can escape from a Root
On Unix platforms, when listing the contents of a directory using File.ReadDir or File.Readdir the returned FileInfo could reference a file outside of the Root in which the File was opened.
The contents of the FileInfo were populated using the lstat system call, which takes the path to the file as a parameter. If a component of the full path of the file described by the FileInfo is replaced with a symbolic link, the target of the lstat can be directed to another location on the filesystem.
The impact of this escape is limited to reading metadata provided by lstat from arbitrary locations on the filesystem. This could be used to probe for the presence or absence of files as well as gleaning metadata like file sizes, but does not permit reading or writing files outside the root.
The FileInfo is now populated using fstatat.
Thank you to Miloslav Trmač of Red Hat for reporting this issue.
This is CVE-2026-27139 and Go issue https://go.dev/issue/77827.
(cherry picked from commit 38b3e4c)