CVE-2025-47291
containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
4.6
containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
CVE-2025-47291- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-266
- Updated
- 2026-11-02
EUVDEUVD-2025-16049
4.6
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
EUVD-2025-16049- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-cxfp-7pvr-95ff
4.6
containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.
Impact
A bug was found in the containerd's CRI implementation where containerd doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node.
Patches
This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue.
Workarounds
Disable usernamespaced pods in Kubernetes temporarily.
Credits
The containerd project would like to thank Rodrigo Campos Catelin and Piotr Rogowski for responsibly disclosing this issue in accordance with the containerd security policy.
For more information
If you have any questions or comments about this advisory:
- Open an issue in containerd
- Email us at [email protected]
To report a security issue in containerd:
- Report a new vulnerability
- Email us at [email protected]
- Record
GHSA-cxfp-7pvr-95ff- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-266
- Updated
- 2026-11-02
NVD
4.6
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
CVE-2025-47291- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-266
- Updated
- 2026-11-02
OSV
4.6
containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
CVE-2025-47291- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-266
- Updated
- 2026-11-02
OSVGHSA-cxfp-7pvr-95ff
4.6
containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.
Impact
A bug was found in the containerd's CRI implementation where containerd doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node.
Patches
This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue.
Workarounds
Disable usernamespaced pods in Kubernetes temporarily.
Credits
The containerd project would like to thank Rodrigo Campos Catelin and Piotr Rogowski for responsibly disclosing this issue in accordance with the containerd security policy.
For more information
If you have any questions or comments about this advisory:
- Open an issue in containerd
- Email us at [email protected]
To report a security issue in containerd:
- Report a new vulnerability
- Email us at [email protected]
- Record
GHSA-cxfp-7pvr-95ff- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-266
- Updated
- 2026-11-02
Show 7 moreShow less
OSVUBUNTU-CVE-2025-47291
4.6
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
UBUNTU-CVE-2025-47291- CVSS 4.0
- 4.6 Medium
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVAZL-62003 No score
CVE-2025-47291 affecting package containerd2 for versions less than 2.0.0-12
containerd is an open-source container runtime. A bug was found in the containerd's CRI implementation where containerd, starting in version 2.0.1 and prior to version 2.0.5, doesn't put usernamespaced containers under the Kubernetes' cgroup hierarchy, therefore some Kubernetes limits are not honored. This may cause a denial of service of the Kubernetes node. This bug has been fixed in containerd 2.0.5+ and 2.1.0+. Users should update to these versions to resolve the issue. As a workaround, disable usernamespaced pods in Kubernetes temporarily.
- Record
AZL-62003- Updated
- 2026-11-02
OSVGO-2025-3701 No score
Incorrect cgroup assignment for containers running in usernamespaced Kubernetes pods in github.com/containerd/containerd
Incorrect cgroup assignment for containers running in usernamespaced Kubernetes pods in github.com/containerd/containerd
- Record
GO-2025-3701- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15159-1 No score
govulncheck-vulndb-0.0.20250523T151856-1.1 on GA media
These are all security issues fixed in the govulncheck-vulndb-0.0.20250523T151856-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15159-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15454-1 No score
trivy-0.65.0-1.1 on GA media
These are all security issues fixed in the trivy-0.65.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15454-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:20117-1 No score
Security update for trivy
This update for trivy fixes the following issues:
Changes in trivy:
Update to version 0.67.2 (bsc#1250625, CVE-2025-11065, bsc#1248897, CVE-2025-58058):
- fix: Use
fetch-level: 1to check out trivy-repo in the release workflow [backport: release/v0.67] (#9638) - fix: restore compatibility for google.protobuf.Value [backport: release/v0.67] (#9631)
- fix: using SrcVersion instead of Version for echo detector [backport: release/v0.67] (#9629)
- fix: add
buildInfoforBlobInfoinrpcpackage [backport: release/v0.67] (#9615) - fix(vex): don't use reused BOM [backport: release/v0.67] (#9612)
- fix(vex): don't suppress vulns for packages with infinity loop (#9465)
- fix(aws): use
BuildableClientinsead ofxhttp.Client(#9436) - refactor(misconf): replace github.com/liamg/memoryfs with internal mapfs and testing/fstest (#9282)
- docs: clarify inline ignore limitations for resource-less checks (#9537)
- fix(k8s): disable parallel traversal with fs cache for k8s images (#9534)
- fix(misconf): handle tofu files in module detection (#9486)
- feat(seal): add seal support (#9370)
- docs: fix modules path and update code example (#9539)
- fix: close file descriptors and pipes on error paths (#9536)
- feat: add documentation URL for database lock errors (#9531)
- fix(db): Dowload database when missing but metadata still exists (#9393)
- feat(cloudformation): support default values and list results in Fn::FindInMap (#9515)
- fix(misconf): unmark cty values before access (#9495)
- feat(cli): change --list-all-pkgs default to true (#9510)
- fix(nodejs): parse workspaces as objects for package-lock.json files (#9518)
- refactor(fs): use underlyingPath to determine virtual files more reliably (#9302)
- refactor: remove google/wire dependency and implement manual DI (#9509)
- chore(deps): bump the aws group with 6 updates (#9481)
- chore(deps): bump the common group across 1 directory with 24 updates (#9507)
- fix(misconf): wrap legacy ENV values in quotes to preserve spaces (#9497)
- docs: move info about
detection priorityinto coverage section (#9469) - feat(sbom): added support for CoreOS (#9448)
- fix(misconf): strip build metadata suffixes from image history (#9498)
- feat(cyclonedx): preserve SBOM structure when scanning SBOM files with vulnerability updates (#9439)
- docs: Fix typo in terraform docs (#9492)
- feat(redhat): add os-release detection for RHEL-based images (#9458)
- ci(deps): add 3-day cooldown period for Dependabot updates (#9475)
- refactor: migrate from go-json-experiment to encoding/json/v2 (#9422)
- fix(vuln): compare
nugetpackage names in lower case (#9456) - chore: Update release flow to include chocolatey (#9460)
- docs: document eol supportability (#9434)
- docs(report): add nuanses about secret/license scanner in summary table (#9442)
- ci: use environment variables in GitHub Actions for improved security (#9433)
- chore: bump Go to 1.24.7 (#9435)
- fix(nodejs): use snapshot string as
Package.IDfor pnpm packages (#9330) - ci(helm): bump Trivy version to 0.66.0 for Trivy Helm Chart 0.18.0 (#9425)
Update to version 0.66.0 (bsc#1248937, CVE-2025-58058):
- chore(deps): bump the aws group with 7 updates (#9419)
- refactor(secret): clarify secret scanner messages (#9409)
- fix(cyclonedx): handle multiple license types (#9378)
- fix(repo): sanitize git repo URL before inserting into report metadata (#9391)
- test: add HTTP basic authentication to git test server (#9407)
- fix(sbom): add support for
filecomponent type ofCycloneDX(#9372) - fix(misconf): ensure module source is known (#9404)
- ci: migrate GitHub Actions from version tags to SHA pinning (#9405)
- fix: create temp file under composite fs dir (#9387)
- chore(deps): bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 (#9403)
- refactor: switch to stable azcontainerregistry SDK package (#9319)
- chore(deps): bump the common…
- Record
openSUSE-SU-2025:20117-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20798-1 No score
Security update for trivy
This update for trivy fixes the following issues:
Update to version 0.68.2:
Security fixes:
- CVE-2024-3817: hashicorp/go-getter: argument injection when fetching remote default git branches (bsc#1227010).
- CVE-2024-45337: golang.org/x/crypto/ssh: Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto (bsc#1234512).
- CVE-2024-45338: golang.org/x/net/html: denial of service due to non-linear parsing of case-insensitive content (bsc#1235265).
- CVE-2024-51744: github.com/golang-jwt/jwt/v4: Bad documentation of error handling in ParseWithClaims can lead to potentially dangerous situations in golang-jwt (bsc#1232948).
- CVE-2025-11065: github.com/go-viper/mapstructure/v2: sensitive Information leak in logs (bsc#1250625).
- CVE-2025-22868: golang.org/x/oauth2/jws: Unexpected memory consumption during token parsing in golang.org/x/oauth2 (bsc#1239225).
- CVE-2025-22869: golang.org/x/crypto/ssh: Denial of Service in the Key Exchange of golang.org/x/crypto/ssh (bsc#1239385).
- CVE-2025-22872: golang.org/x/net/html: incorrectly interpreted tags can cause content to be placed wrong scope during DOM construction (bsc#1241724).
- CVE-2025-27144: gopkg.in/go-jose/go-jose.v2: Go JOSE's Parsing Vulnerable to Denial of Service (bsc#1237618).
- CVE-2025-30204: github.com/golang-jwt/jwt/v4,github.com/golang-jwt/jwt/v5: jwt-go allows excessive memory allocation during header parsing (bsc#1240466).
- CVE-2025-46569: github.com/open-policy-agent/opa: HTTP request path can be crafted to inject Rego code into a constructed query when a virtual document is requested through the Data API (bsc#1246730).
- CVE-2025-47291: github.com/containerd/containerd/v2: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods. (bsc#1243633).
- CVE-2025-47911: golang.org/x/net/html: various algorithms with quadratic complexity when parsing HTML documents (bsc#1251363).
- CVE-2025-47913: golang.org/x/crypto/ssh/agent: client process termination when receiving an unexpected message type in response to a key listing or signing request (bsc#1253512).
- CVE-2025-47914: golang.org/x/crypto/ssh/agent: non validated message size can cause a panic due to an out of bounds read (bsc#1253977).
- CVE-2025-53547: helm.sh/helm/v3: Helm Chart Code Execution (bsc#1246151).
- CVE-2025-58058: github.com/ulikunitz/xz: github.com/ulikunitz/xz leaks memory (bsc#1248937, bsc#1248897).
- CVE-2025-58181: golang.org/x/crypto/ssh: invalidated number of mechanisms can cause unbounded memory consumption (bsc#1253786).
- CVE-2025-58190: golang.org/x/net/html: excessive memory consumption by
html.ParseFragmentwhen processing specially crafted input (bsc#1251547).
Other fixes:
- Update installation.md (#8979)
- chore(alpine): add EOL date for Alpine 3.21 (#8221)
- chore(alpine): add EOL date for Alpine 3.22 (#8992)
- chore(cli): Remove Trivy Cloud (#9847)
- chore(deps): Bump trivy-checks (#7819)
- chore(deps): Bump trivy-checks (#8310)
- chore(deps): Bump trivy-checks (#8619)
- chore(deps): Bump trivy-checks (#8934)
- chore(deps): Bump trivy-checks to v1.7.1 (#8467)
- chore(deps): Bump up trivy-checks to v1.3.0 (#7959)
- chore(deps): Switch to go-viper/mapstructure (#9579)
- chore(deps): Update trivy-checks (#8798)
- chore(deps): Upgrade trivy-checks (#8018)
- chore(deps): bump Go to
v1.23.5(#8341) - chore(deps): bump Go to
v1.23.5[backport: release/v0.59] (#8343) - chore(deps): bump
github.com/CycloneDX/cyclonedx-gofromv0.9.1tov0.9.2(#8105) - chore(deps): bump
github.com/CycloneDX/cyclonedx-gofromv0.9.1tov0.9.2[backport: release/v0.58] (#8136) - chore(deps): bump
golang.org/x/netfromv0.32.0tov0.33.0(#8140) - chore(deps): bump
golang.org/x/netfromv0.32.0tov0.33.0[backport: release/v0.58] (#8142) - chore(deps): bump alpine from 3.20.0 to 3.21.0 in the docker group across 1 directory (#8196)
- chore(deps): bump alpine from…
- Record
openSUSE-SU-2026:20798-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/containerd/containerd/v2Go |
2.0.1 to 2.0.4 | 2.0.5 |
containerd2Azure Linux:3 |
before 2.0.0-12 | 2.0.0-12 |
github.com/containerd/containerd/v2Go |
2.0.1 up to 2.0.5 | 2.0.5 |
containerd-appUbuntu:25.10 |
before 2.0.5-0ubuntu1, plus listed versions 2.0.2-0ubuntu2 |
2.0.5-0ubuntu1 |
govulncheck-vulndbopenSUSE:Tumbleweed |
before 0.0.20250523T151856-1.1 | 0.0.20250523T151856-1.1 |
trivyopenSUSE:Tumbleweed |
before 0.65.0-1.1 | 0.65.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-47291 is a medium vulnerability (CVSS 4.6) in Containerd, published May 21, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.29%, the 21st percentile. Fixed in github.com/containerd/containerd/v2 2.0.5.
References
github.com/containerd/containerd/security/advisories/GHSA-cxfp-7pvr-95ff
nvd.nist.gov/vuln/detail/CVE-2025-47291
pkg.go.dev/vuln/GO-2025-3701
github.com/advisories/GHSA-cxfp-7pvr-95ff
github.com/CVEProject/cvelistV5/tree/main/cves/2025/47xxx/CVE-2025-47291.json
github.com/containerd/containerd
Show 57 moreShow less
ubuntu.com/security/CVE-2025-47291
cve.org/CVERecord?id=CVE-2025-47291
lists.opensuse.org/archives/list/[email protected]/thread/NBVOKYMJCE2HZLSF5W3H3Q7KEHMMOQR3
suse.com/security/cve/CVE-2024-40120
suse.com/security/cve/CVE-2025-1975
suse.com/security/cve/CVE-2025-2527
suse.com/security/cve/CVE-2025-2570
suse.com/security/cve/CVE-2025-31947
suse.com/security/cve/CVE-2025-3446
suse.com/security/cve/CVE-2025-47282
suse.com/security/cve/CVE-2025-47283
suse.com/security/cve/CVE-2025-47284
suse.com/security/cve/CVE-2025-47290
suse.com/security/cve/CVE-2025-47291
suse.com/security/cve/CVE-2025-48056
suse.com/security/cve/CVE-2025-48069
suse.com/security/cve/CVE-2025-5031
suse.com/security/cve/CVE-2025-22868
suse.com/security/cve/CVE-2025-22869
suse.com/security/cve/CVE-2025-22872
suse.com/security/cve/CVE-2025-30204
bugzilla.suse.com/1227010
bugzilla.suse.com/1232948
bugzilla.suse.com/1234512
bugzilla.suse.com/1235265
bugzilla.suse.com/1237618
bugzilla.suse.com/1239225
bugzilla.suse.com/1239385
bugzilla.suse.com/1240466
bugzilla.suse.com/1241724
bugzilla.suse.com/1243633
bugzilla.suse.com/1246151
bugzilla.suse.com/1246730
bugzilla.suse.com/1248897
bugzilla.suse.com/1248937
bugzilla.suse.com/1250625
suse.com/security/cve/CVE-2024-3817
suse.com/security/cve/CVE-2024-45337
suse.com/security/cve/CVE-2024-45338
suse.com/security/cve/CVE-2024-51744
suse.com/security/cve/CVE-2025-11065
suse.com/security/cve/CVE-2025-21613
suse.com/security/cve/CVE-2025-21614
suse.com/security/cve/CVE-2025-27144
suse.com/security/cve/CVE-2025-46569
suse.com/security/cve/CVE-2025-53547
suse.com/security/cve/CVE-2025-58058
bugzilla.suse.com/1251363
bugzilla.suse.com/1251547
bugzilla.suse.com/1253512
bugzilla.suse.com/1253786
bugzilla.suse.com/1253977
suse.com/security/cve/CVE-2025-47911
suse.com/security/cve/CVE-2025-47913
suse.com/security/cve/CVE-2025-47914
suse.com/security/cve/CVE-2025-58181
suse.com/security/cve/CVE-2025-58190
Left out here: the rest of 2 source descriptions. The JSON record has them.