Skip to content

fix(security/HIGH/): Update module github.com/containerd/containerd/v2 to v2.0.9 [SECURITY] (release-3.7.x) - #22187

Merged
rfratto merged 1 commit into
release-3.7.xfrom
deps-update/release-3.7.x-security-github.comcontainerdcontainerdv2
Jun 8, 2026
Merged

fix(security/HIGH/): Update module github.com/containerd/containerd/v2 to v2.0.9 [SECURITY] (release-3.7.x)#22187
rfratto merged 1 commit into
release-3.7.xfrom
deps-update/release-3.7.x-security-github.comcontainerdcontainerdv2

Conversation

@renovate-sh-app

@renovate-sh-app renovate-sh-app Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/containerd/containerd/v2 v2.0.7v2.0.9 age confidence

containerd user ID handling bypass allows runAsNonRoot evasion

CVE-2026-46680 / GHSA-fqw6-gf59-qr4w

More information

Details

Impact

A bug was found in containerd where containers launched with a numeric User directive that cannot be parsed as a 32-bit integer are incorrectly treated as a username. If a crafted image provides an /etc/passwd file mapping this large numeric string to root, the container ultimately runs as root (UID 0). This allows the Kubernetes runAsNonRoot restriction to be bypassed, causing unexpected behavior for environments that require containers to run as a non-root user.

Patches

This bug has been fixed in the following containerd versions:

  • 2.3.1
  • 2.2.4
  • 2.0.9
  • 1.7.32

Note: The containerd 2.1 release has reached its end of life and a fixed version is not provided.

Users should update to these versions to resolve the issue.

Workarounds

Ensure that only trusted images are used and that only trusted users have permissions to import images. Alternatively, enforcing a specific numeric runAsUser in the Kubernetes Pod securityContext overrides the USER directive in the image and prevents the bypass. Newer versions of Kubernetes, starting with 1.34, also appear to enforce runAsNonRoot properly regardless of this bug.

Credits

The containerd project would like to thank Lei Wang (@​ssst0n3) for responsibly disclosing this issue in accordance with the containerd security policy.

Resources
For more information

If there are any questions or comments about this advisory:

To report a security issue in containerd:

Severity

  • CVSS Score: 7.3 / 10 (High)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

containerd/containerd (github.com/containerd/containerd/v2)

v2.0.9: containerd 2.0.9

Compare Source

Welcome to the v2.0.9 release of containerd!

The ninth patch release for containerd 2.0 includes various bug fixes and updates, including a security fix.

  • containerd

  • Ensure container exit events are not lost during containerd restart (#​11633)

  • Apply hardening to avoid TOCTOU race in tar extraction (#​13237)

  • Fix handling of out-of-range USER values in OCI spec to avoid unexpected username/group lookups (#​13449)

  • Apply hardening to block AF_ALG in default socket policy (#​13407)

  • Support both "volatile" and "fsync=volatile" mount options for volatile snapshotter (#​13298)

  • Fix bugs in sandbox service affecting sandbox creation configuration and event publishing (#​13271)

  • Set AppArmor abi conditionally to support versions < 3.0 (#​13277)

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

  • Samuel Karp
  • Chris Henzie
  • Maksym Pavlenko
  • Paweł Gronowski
  • Wei Fu
  • Brian Goff
  • LEI WANG
  • Shachar Tal
  • William Myers
  • ningmingxiao
18 commits

  • 2da65b8bd Prepare release notes for v2.0.9
  • oci: return explicit error for out-of-range USER values (#​13449)
    • 1a3d1c85e oci: return explicit error for out-of-range USER values
  • seccomp: Block AF_ALG in default socket policy (#​13407)
    • fa2a97505 seccomp: Block AF_ALG in default socket policy
    • 4b2b07879 seccomp: Document socket rule scope and socketcall limitation
  • Support both styles of volatile mount option (#​13298)
    • ea56c9605 Support both styles of volatile mount option
  • backport: sandbox: forward Create fields, fix event topics (#​13271)
    • 3d34dc820 sandbox: forward Create fields, fix event topics
  • apparmor: Set abi conditionally (#​13277)
  • Add GitHub Action for k8s node e2e tests (#​13257)
    • 3e9c4d1e0 Add GitHub Action for k8s node e2e tests
  • Fix TOCTOU race bug in tar extraction (#​13237)
    • cf73e6873 Fix TOCTOU race bug in tar extraction
  • cri:fix lost container exit events if they arrive before info is cached (#​11633)
    • 2320b319e cri:fix lost container exit events if they arrive before info is cached

This release has no dependency changes

Previous release can be found at v2.0.8

  • containerd-<VERSION>-<OS>-<ARCH>.tar.gz: ✅Recommended. Dynamically linked with glibc 2.31 (Ubuntu 20.04).
  • containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz: Statically linked. Expected to be used on non-glibc Linux distributions. Not position-independent.

In addition to containerd, typically you will have to install runc
and CNI plugins from their official sites too.

See also the Getting Started documentation.

v2.0.8: containerd 2.0.8

Compare Source

Welcome to the v2.0.8 release of containerd!

The eighth patch release for containerd 2.0 includes various bug fixes and updates, including a security fix.

Security Updates
Highlights
Container Runtime Interface (CRI)
  • Sanitize error before gRPC return to prevent possible credential leak in pod events (#​13181)
  • Fix CNI issue where DEL is never executed after a restart (#​13179)
Runtime

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

Contributors
  • Samuel Karp
  • Michael Zappa
  • Akhil Mohan
  • Laura Lorenz
  • Phil Estes
  • Aadhar Agarwal
  • Andrey Noskov
  • Chris Henzie
  • Davanum Srinivas
  • Maksym Pavlenko
  • Rodrigo Campos
  • Sebastiaan van Stijn
  • ningmingxiao
  • yashsingh74
Changes
32 commits

  • Prepare release notes for v2.0.8 (missed line) (#​13235)
    • c07b94f19 Prepare release notes for v2.0.8 (missed line)
  • Prepare release notes for v2.0.8 (#​13222)
  • update github.com/moby/spdystream v0.5.1 (#​13219)
    • fde1480df update github.com/moby/spdystream v0.5.1
  • update to Go 1.25.9, 1.26.2 (#​13199)
    • 5b2eee8a2 update to Go 1.25.9, 1.26.2
    • c579db16e update golangci-lint to v2.9.0 with go1.26 support
    • 185ddcfd0 remove windows/arm from cross build
    • 8538158df Ignore warnings for golangci-lint bump
    • 1cff32695 ci: bump golangci from 6.5.2 to 7.0.0
  • Updating selinux to v1.13.1 (#​13193)
    • 2e02b8bb3 Skip github.com/cyphar/filepath-securejoin license checks
    • e71fc560b Updating selinux to v1.13.1
  • fix: sanitize error before gRPC return to prevent credential leak in pod events (#​13181)
    • 868869eb9 fix: sanitize error before gRPC return to prevent credential leak in pod events
    • 40632e4f2 fix: redact all query parameters in CRI error logs
  • CODEOWNERS: mark Sam and Chris as owners for 2.0 (#​13174)
    • 85c3b2b02 CODEOWNERS: mark Sam and Chris as owners for 2.0
  • Update github.com/moby/spdystream v0.4.0->v0.5.0 (#​13182)
    • 902d804c9 Update github.com/moby/spdystream v0.4.0->v0.5.0
  • Fix CNI issue where CNI DEL is never executed (#​13179)
  • Cherry-picks to fix CI (#​13175)
    • f24653597 Ignore NOCHANGE error
    • 9c656fab4 ci: update CIFuzz actions to support Ubuntu 24.04
    • c71c4a091 integration: Fix TestImageLoad() failure on CI
    • bfee29999 ci: modprobe xt_comment on almalinux

Dependency Changes
  • github.com/cyphar/filepath-securejoin v0.5.1 new
  • github.com/moby/spdystream v0.4.0 -> v0.5.1
  • github.com/opencontainers/selinux v1.11.1 -> v1.13.1

Previous release can be found at v2.0.7

Which file should I download?
  • containerd-<VERSION>-<OS>-<ARCH>.tar.gz: ✅Recommended. Dynamically linked with glibc 2.31 (Ubuntu 20.04).
  • containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz: Statically linked. Expected to be used on non-glibc Linux distributions. Not position-independent.

In addition to containerd, typically you will have to install runc
and CNI plugins from their official sites too.

See also the Getting Started documentation.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • ""
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

Need help?

You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.

@renovate-sh-app
renovate-sh-app Bot requested a review from a team as a code owner June 3, 2026 11:19
@renovate-sh-app renovate-sh-app Bot changed the title fix(security/HIGH/): Update module github.com/containerd/containerd/v2 to v2.2.4 [SECURITY] (release-3.7.x) Jun 3, 2026
@renovate-sh-app renovate-sh-app Bot closed this Jun 3, 2026
@renovate-sh-app
renovate-sh-app Bot deleted the deps-update/release-3.7.x-security-github.comcontainerdcontainerdv2 branch June 3, 2026 17:33
@renovate-sh-app renovate-sh-app Bot changed the title fix(security/HIGH/): Update module github.com/containerd/containerd/v2 to v2.2.4 [SECURITY] (release-3.7.x) - autoclosed Jun 4, 2026
@renovate-sh-app renovate-sh-app Bot reopened this Jun 4, 2026
@renovate-sh-app
renovate-sh-app Bot force-pushed the deps-update/release-3.7.x-security-github.comcontainerdcontainerdv2 branch 2 times, most recently from 2fbd89e to f6c1756 Compare June 4, 2026 17:18
…2 to v2.0.9 [SECURITY]

| datasource | package                             | from   | to     |
| ---------- | ----------------------------------- | ------ | ------ |
| go         | github.com/containerd/containerd/v2 | v2.0.7 | v2.0.9 |


Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
@renovate-sh-app
renovate-sh-app Bot force-pushed the deps-update/release-3.7.x-security-github.comcontainerdcontainerdv2 branch from f6c1756 to 6991f54 Compare June 8, 2026 17:14
@renovate-sh-app renovate-sh-app Bot changed the title fix(security/HIGH/): Update module github.com/containerd/containerd/v2 to v2.2.4 [SECURITY] (release-3.7.x) Jun 8, 2026
@rfratto
rfratto merged commit 365c7e9 into release-3.7.x Jun 8, 2026
86 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment