containerd 2.2.4 → 2.3.3
10 releases · 1 breaking change · 19 security fixes · 5 advisories fixed
19security1breaking3deprecated87feature14fix
Vulnerabilities fixed by this upgrade
- medium CVE-2026-47262 containerd image-triggered runtime DoS via unbounded group parsing
- 5.6 CVE-2026-50195 CRI checkpoint import allows local image tag poisoning
- high CVE-2026-53489 Arbitrary host file read via symlink following in CRI checkpoint restore
- critical CVE-2026-53488 containerd CRI — image-config LABEL flows to host-root command execution from an image pull
- critical CVE-2026-53492 CDI annotation smuggling during CRI checkpoint restore
Breaking changes
- breaking 1c0d72890 Makefile: remove go mod download from integration in 2.2.10
Security changes
- security CVE-2026-50195 in 2.3.2
- security CVE-2026-53488 in 2.3.2
- security CVE-2026-53492 in 2.3.2
- security CVE-2026-53489 in 2.3.2
- security CVE-2026-47262 in 2.3.2
- security CVE-2026-46680 in 2.3.1
- security CVE-2026-95839 in 2.2.10
- security GHSA-5p7c-hggf-c748 in 2.2.10
- security GHSA-8647-2jxj-p2rc in 2.2.10
- security GHSA-hc94-p972-ch66 in 2.2.10
- security CVE-2026-53493 in 2.2.9
- security CVE-2026-53495 in 2.2.8
- security GHSA-rp3h-jf77-q9p4 in 2.2.8
- security Fixes CVE-2026-95837: containerd CRI plugin: Checkpoint restore bypasses destination security context in 2.2.7
- security CVE-2026-50195 in 2.2.5
- security CVE-2026-53488 in 2.2.5
- security CVE-2026-53492 in 2.2.5
- security CVE-2026-53489 in 2.2.5
- security CVE-2026-47262 in 2.2.5
Deprecations
- deprecated Deprecate shim.Command () in 2.3.0
- deprecated cri: deprecate restore in CreateContainer () in 2.2.7
- deprecated c59d041d8 cri: deprecate restore in CreateContainer in 2.2.7
Every release in between
featureSet SystemTemp environment variable on Windows so temp directory overrides work for SYSTEM services ()
featureFix nil pointer dereference in NRI GetIPs during pod sandbox teardown or container exit ()
featureReject CreateContainer calls when the target sandbox is not running ()
featureEnsure sandbox shutdown on RunPodSandbox hook failures to avoid mount leaks ()
featureSurface OCI error bodies in registry 403 responses by falling back to GET requests ()
featureAlign default 4K mkfs block size for EROFS across all platforms ()
otherPrepare release notes for v2.3.3 ()
other7f6cee02a Prepare release notes for v2.3.3
otherCI: migrate Vagrant to Lima ()
other7316210ce CI: migrate Vagrant to Lima
otherremotes: surface OCI error body in registry 4xx responses ()
other457fba3a3 remotes: surface OCI error body on HEAD 403 via GET fallback
otherUpdate go to 1.26.5 ()
otherdc2df934e Update go to 1.26.5
otherci: pin fog-json to resolve gem conflict ()
other5be0495df ci: pin fog-json to resolve gem conflict
fixFix nil pointer dereference in NRI GetIPs ()
other36c713971 Fix nil pointer dereference in NRI GetIPs
otherSet SystemTemp env var to config temp on Windows ()
other26dce170d Set SystemTemp env var to config temp on Windows
otherupdate runhcs to v0.15.0-rc.3 ()
other9bc2c2349 update runhcs to v0.15.0-rc.3
otherUpdate to current setup-go version ()
other3e97edeb7 Update to current setup-go version
othercri: reject CreateContainer when sandbox is not running ()
other8856b0f9c cri: reject CreateContainer when sandbox is not running
otherupdate runhcs to v0.15.0-rc.2 ()
otherae796cec5 update runhcs to v0.15.0-rc.2
othertest: fix flaky image timestamp check on coarse clocks ()
fix168d56783 test: fix flaky image timestamp check on coarse clocks
featureAdd defer in event of mid-function failures in RunPodSandbox to avoid mount leaks ()
featured1db61db8 Add deferred call to ShutdownSandbox to avoid leaks
othererofs: align default mkfs block size across platforms ()
other01b0f03f6 erofs: align default mkfs block size across platforms
securityCVE-2026-50195
securityCVE-2026-53488
securityCVE-2026-53492
securityCVE-2026-53489
securityCVE-2026-47262
featureFix a data race when reading shim logs on Windows ()
featureAllow the last host to retry on transient network errors ()
featureFix container startup failures caused by concurrent task RPC timeouts during slow container creation ()
otherPrepare release notes for v2.3.2 ()
otherfb8ca00b0 Prepare release notes for v2.3.2
other9c69960ba Merge commit from fork
other0f6251520 Merge commit from fork
other91d7471e2 cri: filter CDI annotations on checkpoint restore
other7c2e086bf Merge commit from fork
otherdae67765f cri: do not re-tag restored checkpoints
other94aa1e2c1 Merge commit from fork
other09599078f cri: make checkpoint restore robust to unexpected archive content
othere1fdb8d22 Merge commit from fork
otherff1d116ef Bound user-database file reads in openUserFile
otherd156e07cb Merge commit from fork
otherf99aad54a Do not propagate reserved labels from image configs
othervendor: golang.org/x/crypto v0.53.0 ()
other0b9469501 [release/2.3] vendor: golang.org/x/crypto v0.53.0
otherresolver: retry on transient network errors ()
other983bbddc1 resolver: retry on transient network errors
otherupdate runc binary to v1.4.3 ()
other3f76f2dc1 update runc binary to v1.4.3
otherupdate go to 1.26.4 ()
other8a49dfe85 update go to 1.26.4
other5aa6bb2b7 remove 1.26.2 from CI builds as it is not supported any longer due to the dependency
otherConfigure udevd children-max for root-test ()
otherbfb8aebc0 Configure udevd children-max for root-test
fixcore/runtime/v2: fix race on Windows deferredPipeConnection.c in Read ()
fix62ceafff0 core/runtime/v2: fix race on Windows deferredPipeConnection.c in Read
otherrunc-shim: don't hold the service lock across runc create ()
other9b0c0dc58 runc-shim: don't hold the service lock across runc create
othercontrib/checkpoint: increase timeouts to 30s ()
otherf588bc6fb contrib/checkpoint: increase timeouts to 30s
othergolang.org/x/crypto v0.49.0 -> v0.53.0
othergolang.org/x/mod v0.35.0 -> v0.36.0
+5 more items in the release notessecurityCVE-2026-46680
featureFix bug where failed gRPC plugins were not tolerated when starting listeners ()
featureEnsure metadata and mount plugin boltdb files are closed on server shutdown ()
featureFix handling of out-of-range USER values in OCI spec to avoid unexpected username/group lookups ()
featureFix sandbox task API endpoints for non-runc runtimes and deprecate task fields in Runc options ()
featureApply hardening to default seccomp socket policy by blocking AF_ALG ()
featureDisable overlayfs "rebase" capability when running in user namespace ()
featureFix transfer plugin error when EROFS differ is configured but mkfs.erofs is unavailable ()
otherPrepare release notes for v2.3.1 ()
other58af96519 Prepare release notes for v2.3.1
other8f0b3ca83 Update api to v1.11.1
otheroci: return explicit error for out-of-range USER values ()
othera05ae7885 oci: return explicit error for out-of-range USER values
otherPrepare release notes for api/v1.11.1 ()
otherda7aef299 Prepare release notes for api/v1.11.1
fixFix sandbox task API endpoints for non-runc runtimes ()
other5282d4e09 Wire task address and version fields
othere44f5f9ec protos: include task API address to CreateTaskRequest
otherseccomp: Block AF_ALG in default socket policy ()
other4d80a31bf seccomp: Block AF_ALG in default socket policy
other2ed0d97b6 seccomp: Document socket rule scope and socketcall limitation
otherserver: tolerate failed gRPC plugins when starting listeners ()
other3a88fdde0 server: tolerate failed gRPC plugins when starting listeners
otheroverlay: disable "rebase" capability when running in UserNS ()
other2be0710b8 overlay: disable "rebase" capability when running in UserNS
otherUpdate Go to 1.26.3 ()
other3b199c22b Update Go to 1.26.3
fixfix: close boltdb on metadata and mount plugin close ()
other1d601271a fix: close boltdb on metadata and mount plugin close
fixFix optional EROFS differ setup in transfer plugin ()
otherd666d2e42 Refactor transfer unpack configuration setup
otherccc3bd7b9 Fix optional transfer differ setup
othergithub.com/containerd/containerd/api v1.11.0 -> v1.11.1
featureAdd transfer types for container filesystem copy ()
featureAdd option to inject trace ID to logs ()
featurePropagate OpenTelemetry traces in outgoing RPCs from plugin clients ()
featureUpdate plugin config migration to run on load ()
featureUpdate sandbox API to include spec field ()
featureAllow containers to use user namespaces with host networking ()
featureWire UpdatePodSandboxResources to Sandbox API ()
featureUnpack images with per-layer labels for specific runtime ()
featurePopulate ImageId field in container status ()
featureSet annotations parameter in CreateSandbox request ()
featureAdd background stats collector to calculate UsageNanoCores for containers and pod sandboxes ()
featureSupport zstd-wrapped EROFS layers ()
featureAdd os.features support for EROFS native container images ()
featureAdd EROFS layer media type ()
featureAdd dmverity support to the erofs snapshotter ()
featureUse fsmount API to avoid PAGE_SIZE limit for erofs ()
featurePass container user (uid, gids) to plugins ()
featurePass seccomp policy to plugins ()
featurePass any POSIX rlimits to plugins ()
featurePass extended container status to NRI. ()
featurePass injected CDI devices to plugins ()
featurePass linux sysctl to plugins ()
featureUse dedicated RPC calls for all pod and container life-cycle events via the NRI wire protocol (containerd/nri#274)
featureAdd basic metrics collection for the NRI framework (containerd/nri#277)
featureExchange NRI versions between plugins and the runtime during registration (containerd/nri#271)
featureEnable adjusting Linux memory policy from NRI plugins (containerd/nri#166)
featureClose plugins if initial synchronization fails to prevent unregistered connections (containerd/nri#279)
featureAccumulate owners for OCI hook adjustments, disallowing commas in plugin names (containerd/nri#264)
featureAdd nri_no_wasm build tag to allow disabling WASM support at compile time (containerd/nri#253)
featureSupport direct adjustment of the intelRdt container configuration (containerd/nri#215)
featureAllow setting kernel scheduling policy attributes via NRI (containerd/nri#160)
featureAllow adjusting Linux network devices via NRI (containerd/nri#157)
featureAdd support for sysctl adjustment via NRI (containerd/nri#248)
featureExpose container user, group, and supplemental group IDs to plugins (containerd/nri#230)
featureAdd configured socket directory to shim bootstrap protocol ()
featureIntroduce shim bootstrap protocol ()
featureFix binary logging driver not blocking container start on failure ()
featureUse new filtered cgroups stats API ()
featureUpdate OOMKilled event handling ()
deprecatedDeprecate shim.Command ()
+76 more items in the release notessecurityCVE-2026-95839
securityGHSA-5p7c-hggf-c748
securityGHSA-8647-2jxj-p2rc
securityGHSA-hc94-p972-ch66
featureApply hardening to not follow symlinks for container log files ()
featureAvoid hang and data corruption during multipart image fetch ()
featureApply hardening to reject image references with ".." path components ()
featureApply hardening to allowlist socket domains in the default seccomp profile ()
featureApply hardening to filter ID-mapping labels from image annotations during unpack ()
otherPrepare release notes for v2.2.10 ()
other27d59fe59 Prepare release notes for v2.2.10
otherUpdate to go1.26.9 ()
othercb4648a80 Update to go1.26.9, remove go1.25.12
other6fe70e5cc Merge commit from fork
other70c8ae49e remotes/docker: bound parallel fetch readers
otheraff52a508 Merge commit from fork
other2455fec2f images: skip malformed digests when computing referrer labels
other32fc74497 Merge commit from fork
other5f8c507a2 content, remotes: bound reads to expected size
other14da554b2 Merge commit from fork
otherc3b7534ed cri: unmount checkpoint view on every CRImportCheckpoint return path
otherSkip critest OOMKilled testcase for systemd cgroup ()
othera47da7e9b script/critest.sh: always skip OOMKilled on systemd cgroup
other32c566557 *: skip critest OOMKilled testcase for systemd cgroup
othermultipart fetch stability fixes ()
other5dde40350 multipart fetch stability fixes
fixintegration/client: fix TestContainerExecLargeOutputWithTTY ()
fix7dff2d997 integration/client: fix TestContainerExecLargeOutputWithTTY
othercri: should not follow log file ()
othera5e41909a cri: should not follow log file
otherreference: reject .. path components that rewrite the host ()
other4f71fd9b0 reference: reject .. path components that rewrite the host
othercore/unpack: don't honor id-mapping labels from image annotations ()
other4b3494a8d core/unpack: tighten comments around id-mapping label filtering
other076598878 core/unpack: don't honor id-mapping labels from image annotations
featureseccomp: Use an allow-list for socket domains ()
feature5ba51c0f2 seccomp: Use an allow-list for socket domains
otherConditional actions ()
otherfa5e5452e [CI] Prevents triggering of an inactive issue/PR check for forked repository.
breaking1c0d72890 Makefile: remove go mod download from integration
+2 more items in the release notessecurityCVE-2026-53493
featureFix bug where container creation failed when SELinux relabeling was unsupported by the filesystem ()
featureEnable mount manager for image mounts in CRI ()
featureEnsure all layers are fetched when multiple manifests in an index share a config descriptor ()
featureMask /proc/interrupts and CPU thermal throttle sysfs paths in Linux containers by default ()
other60acf78bc5 Prepare release notes for v2.2.9
other253f9cc140 Merge commit from fork
other053c0cc412 Bound Walk references
otherefd11fc9c2 Bound Dispatch concurrency and references
othercri: tolerate wrapped ENOTSUP during relabel ()
other39d0dd4b43 cri: tolerate wrapped ENOTSUP during relabel
otherpkg/oci: mask thermal interrupt info ()
otherbaffef9669 pkg/oci: mask thermal interrupt info
othercore/unpack: fetch layers of every config-sharing manifest ()
other9e1ae6a9e9 core/unpack: fetch layers of every config-sharing manifest
othercri: Backport image mount fixes 2.2 ()
other2cdf8d80cc cri: only unmount image volumes when mounting fails
other2e1dcc5da0 cri: enable mount manager for image mounts
securityCVE-2026-53495
securityGHSA-rp3h-jf77-q9p4
featureApply hardening to strip sensitive authentication headers when fetching descriptor URLs ()
featureSet SystemTemp environment variable on Windows so temp directory overrides work for SYSTEM services ()
featureFix user and group lookup failures in container rootfs containing symlinked /etc/passwd or /etc/group ()
featureFix EROFS snapshot creation failure caused by concurrent snapshot removal ()
other4864b1814 Prepare release notes for v2.2.8
other3458b7fd3 Merge commit from fork
other22ccf4314 cri: cancel ExecSync IO drain on context cancellation
other2bf01ce17 Merge commit from fork
other45166eb82 archive: skip redundant opaque whiteout walks
otherSet SystemTemp env var to config temp on Windows ()
other2c722ad04 Set SystemTemp env var to config temp on Windows
otherpkg/oci: resolve rootfs symlinks for user lookup ()
other196664bc0 pkg/oci: resolve rootfs symlinks for user lookup
otherdocker fetcher: strip sensitive headers on descriptor URLs ()
other6da9d9528 core/remotes/docker: normalize descriptor URL origins
other4f7851699 core/remotes/docker: strip sensitive headers on desc.urls fetch
othersnapshots/erofs: protect snapshot staging from cleanup ()
otherf7075a224 snapshots/erofs: protect snapshot staging from cleanup
securityFixes CVE-2026-95837: containerd CRI plugin: Checkpoint restore bypasses destination security context
featureDisable checkpoint restore in CreateContainer by default, requiring the enable_experimental_restore_via_create configuration option to enable ()
featureDeprecate checkpoint restore in CreateContainer ()
featureSupport non-UTF-8 binary environment variable values in CRI ()
featureDisable checkpoint restore codepaths when CRIU is not installed and add enable_criu configuration option ()
featureEnable OCI runtime feature introspection for non-runc runtimes in CRI ()
featureEnable log scrubbing by default on Windows ()
featureFix mount manager activation error when activation already exists ()
other43f299db6 Prepare release notes for v2.2.7
othercri: disable restore in CreateContainer by default ()
other5c3a47036 cri: disable restore in CreateContainer by default
otherUse ScrubLogs by default on Windows ()
feature4c93ae6d5 ctr: add --scrub-logs flag for Windows
othera124c7e35 cri/config: use ScrubLogs by default on Windows
deprecatedcri: deprecate restore in CreateContainer ()
deprecatedc59d041d8 cri: deprecate restore in CreateContainer
otherHandle []byte envvar value for CRI ()
other6cdc2ddce Handle []byte envvar value
othera60898833 update to v0.34.x kubernetes dependencies
fixFix mount manager activation error when already exists ()
fix54ecff6ca core/mount: Fix mount manager activation error when already exists
otherDisable checkpoint restore codepath when CRIU is not installed ()
otherfd966ba29 github/workflows: install criu in node-e2e
feature7d41b25c9 cri: add enable_criu configuration option
other48116fa59 cri: validate CRIU availability and version early
fixfix(cri): introspect OCI runtime features for non-runc runtimes ()
other6a3d14e8a fix(cri): introspect OCI runtime features for non-runc runtimes
otherci: bound Go fuzzing by execution count ()
other424b714f0 ci: bound Go fuzzing by execution count
othergo.opentelemetry.io/otel v1.38.0 -> v1.41.0
othergo.opentelemetry.io/otel/metric v1.38.0 -> v1.41.0
othergo.opentelemetry.io/otel/trace v1.38.0 -> v1.41.0
othergoogle.golang.org/protobuf v1.36.10 -> f2248ac996af
otherk8s.io/api v0.34.1 -> v0.34.10
otherk8s.io/apimachinery v0.34.1 -> v0.34.10
otherk8s.io/client-go v0.34.1 -> v0.34.10
otherk8s.io/cri-api v0.34.1 -> v0.34.10
featureFix nil pointer dereference in NRI GetIPs during pod sandbox teardown or container exit ()
featureReject CreateContainer calls when the target sandbox is not running ()
featureEnsure sandbox shutdown on RunPodSandbox hook failures to avoid mount leaks ()
featureLimit fallback to /blobs endpoint during ref resolution to prevent content store pollution ()
otherPrepare release notes for v2.2.6 ()
other701734d2f Prepare release notes for v2.2.6
otherCI: migrate Vagrant to Lima ()
other672ea355f CI: migrate Vagrant to Lima
otherUpdate go to 1.26.5/1.25.12 ()
otherd7eba3f42 Update go to 1.26.5/1.25.12
otherci: pin fog-json to resolve gem conflict ()
other8f123e4f7 ci: pin fog-json to resolve gem conflict
fixFix nil pointer dereference in NRI GetIPs ()
otherd3e1a2be9 Fix nil pointer dereference in NRI GetIPs
othercri: reject CreateContainer when sandbox is not running ()
other872a9502e cri: reject CreateContainer when sandbox is not running
featureAdd defer in event of mid-function failures in RunPodSandbox to avoid mount leaks ()
featureba7605ee7 Add deferred call to ShutdownSandbox to avoid leaks
fixfix: avoid content storage pollution by limiting the fallback on ref resolution ()
other36c4275ee fix:avoid content storage pollution by limiting the fallback on ref resolution
securityCVE-2026-50195
securityCVE-2026-53488
securityCVE-2026-53492
securityCVE-2026-53489
securityCVE-2026-47262
otherPrepare release notes for v2.2.5 ()
other269031099 Prepare release notes for v2.2.5
otherad59aa564 Merge commit from fork
other0b4d23690 Merge commit from fork
otherbe8460656 cri: filter CDI annotations on checkpoint restore
other347240f72 Merge commit from fork
othercff578841 cri: do not re-tag restored checkpoints
other668cf2c2f Merge commit from fork
other357652293 cri: make checkpoint restore robust to unexpected archive content
otherd43da05af Merge commit from fork
other30708e8d1 Bound user-database file reads in openUserFile
other028647ea2 Merge commit from fork
otherb6072a49f Do not propagate reserved labels from image configs
othervendor: golang.org/x/crypto v0.53.0 ()
othercfea2c141 [release/2.2] vendor: golang.org/x/crypto v0.53.0
otherupdate runc binary to v1.3.6 ()
otherfc96ea6b3 update runc binary to v1.3.6
otherupdate go to 1.26.4/1.25.11 ()
other5a125fd66 update go to 1.26.4/1.25.11
otherConfigure udevd children-max for root-test ()
other2b7dfbd7f Configure udevd children-max for root-test
otherClean up disk space in node e2e workflow ()
other1500e586f Clean up disk space in node e2e workflow
othercontrib/checkpoint: increase timeouts to 30s ()
other9991e944e contrib/checkpoint: increase timeouts to 30s
otherrelease: don't mark 2.2 releases as latest ()
other55a1f85d5 release: don't mark 2.2 releases as latest
othergolang.org/x/crypto v0.45.0 -> v0.53.0
othergolang.org/x/mod v0.29.0 -> v0.36.0
othergolang.org/x/net v0.47.0 -> v0.55.0
othergolang.org/x/sync v0.18.0 -> v0.21.0
othergolang.org/x/sys v0.38.0 -> v0.46.0
othergolang.org/x/term v0.37.0 -> v0.44.0
othergolang.org/x/text v0.31.0 -> v0.38.0