vendor: github.com/containerd/containerd/v2 v2.2.5

- full diff: https://github.com/containerd/containerd/compare/v2.2.4...v2.2.5
- release notes: https://github.com/containerd/containerd/releases/tag/v2.2.5

The fifth patch release for containerd 2.2 contains various fixes
and updates including security patches.

-  CVE-2026-50195 / [GHSA-cvxm-645q-p574] CRI: checkpoint import allows local image tag poisoning
-  CVE-2026-53488 / [GHSA-xhf5-7wjv-pqxp] CRI: image-config LABEL flows to host-root command execution from an image pull
-  CVE-2026-53492 / [GHSA-33vj-92qq-66hc] CRI: CDI annotation smuggling during CRI checkpoint restore
-  CVE-2026-53489 / [GHSA-rgh6-rfwx-v388] CRI: Arbitrary host file read via symlink following in CRI checkpoint restore
-  CVE-2026-47262 / [GHSA-jpcc-p29g-p8mq] containerd image-triggered runtime DoS via unbounded group parsing

[GHSA-cvxm-645q-p574]: https://github.com/containerd/containerd/security/advisories/GHSA-cvxm-645q-p574
[GHSA-xhf5-7wjv-pqxp]: https://github.com/containerd/containerd/security/advisories/GHSA-xhf5-7wjv-pqxp
[GHSA-33vj-92qq-66hc]: https://github.com/containerd/containerd/security/advisories/GHSA-33vj-92qq-66hc
[GHSA-rgh6-rfwx-v388]: https://github.com/containerd/containerd/security/advisories/GHSA-rgh6-rfwx-v388
[GHSA-jpcc-p29g-p8mq]: https://github.com/containerd/containerd/security/advisories/GHSA-jpcc-p29g-p8mq

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2026-06-23 09:27:04 +02:00
parent 1d805d2ea2
commit e1e5963dae
6 changed files with 27 additions and 6 deletions
+12
View File
@@ -16,6 +16,18 @@
package labels
// ReservedPrefix is the prefix of the label namespace reserved for labels
// defined and consumed by containerd itself. Labels in this namespace must
// not be copied from untrusted sources such as image config labels. Use
// IsReserved to check for such labels.
const ReservedPrefix = "containerd.io/"
// CRIContainerdPrefix is the prefix of the label namespace reserved for
// labels defined and consumed by containerd's CRI plugin. Labels in this
// namespace must not be copied from untrusted sources such as image config
// labels. Use IsReserved to check for such labels.
const CRIContainerdPrefix = "io.cri-containerd"
// LabelUncompressed is added to compressed layer contents.
// The value is digest of the uncompressed content.
const LabelUncompressed = "containerd.io/uncompressed"
+9
View File
@@ -18,6 +18,7 @@ package labels
import (
"fmt"
"strings"
"github.com/containerd/errdefs"
)
@@ -39,3 +40,11 @@ func Validate(k, v string) error {
}
return nil
}
// IsReserved returns true if the label key is in a namespace reserved for
// containerd (ReservedPrefix) or its CRI plugin (CRIContainerdPrefix).
// Reserved labels are interpreted by containerd and must not be copied from
// untrusted sources such as image config labels.
func IsReserved(k string) bool {
return strings.HasPrefix(k, ReservedPrefix) || strings.HasPrefix(k, CRIContainerdPrefix)
}
+1 -1
View File
@@ -24,7 +24,7 @@ var (
Package = "github.com/containerd/containerd/v2"
// Version holds the complete version number. Filled in at linking time.
Version = "2.2.4+unknown"
Version = "2.2.5+unknown"
// Revision is filled with the VCS (e.g. git) revision being used to build
// the program at linking time.