Cloudanix VulnDB

CVE-2025-47291

None

containerd CRI plugin: Incorrect cgroup hierarchy assignment for containers running in usernamespaced Kubernetes pods.

CVSS

—

EPSS

0.3%

Published

May 21, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in container software used by many Kubernetes clusters can let one workload ignore its assigned resource limits and overload an entire server, taking down everything else running on that server.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
Container Runtime
Class
Kubernetes
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The containerd CRI implementation fails to place usernamespaced containers into the expected Kubernetes cgroup hierarchy, allowing resource limits defined by the cluster to be bypassed.

Why it matters to the business

A single compromised or malicious workload can exhaust node resources, causing denial of service for the entire Kubernetes node and disrupting all workloads running on it; the issue affects widely used containerd versions across many clusters.

How an attack unfolds

An attacker with the ability to schedule containers runs a usernamespaced pod that is not placed under the Kubernetes cgroup hierarchy; the pod then consumes CPU, memory, or I/O beyond its declared limits until the node becomes unresponsive.

How to fix it

Upgrade containerd to commit fb4c30d4ede3531652d86197bf3fc9515e5276d9 or later; for Ubuntu packages also apply the listed QEMU fixes where applicable (1:9.0.2+ds-4ubuntu2 for 24.10, 1:6.2+dfsg-2ubuntu6.27 for 22.04 LTS, 1:8.2.2+ds-0ubuntu1.10 for 24.04 LTS).

How to confirm the fix worked

Verify the running containerd binary or package version matches or exceeds the fixed commits listed; confirm that usernamespaced containers appear under the expected Kubernetes cgroup paths after upgrade.

Typical attack path

  1. Gain access to deploy or influence container creation on a Kubernetes cluster using containerd
  2. Create a usernamespaced container or pod with intentionally high resource consumption
  3. Bypass applied Kubernetes limits because the container is outside the expected cgroup hierarchy
  4. Exhaust node-level resources leading to node-level denial of service

How to detect it

Search container runtime logs and Kubernetes audit logs for creation of usernamespaced containers that later correlate with unexpected resource spikes or node NotReady events; review cgroup hierarchy under /sys/fs/cgroup for missing Kubernetes-managed subtrees associated with usernamespaced pods.

What your security team should do

  • Immediately upgrade containerd to the fixed commit on all Kubernetes nodes
  • Prioritize clusters with high node density or multi-tenant workloads
  • Review and enforce pod security policies that restrict usernamespaced containers until patched
  • Monitor for resource-exhaustion alerts on nodes until remediation is complete

The record

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.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/containerd/containerd/v2 2.0.1 2.0.5
Chainguard cg 0 0_git20250613-r0
Chainguard cloudbeat 0 9.0.1-r1
Chainguard cloudbeat-fips 0 9.0.1-r1
Chainguard k3s 0 1.33.0.1-r2
Chainguard k3s-embedded 0 1.33.0.1-r2
Chainguard k3s-images 0 1.33.0.1-r2
Chainguard k3s-multicall 0 1.33.0.1-r2
Chainguard k3s-multicall-1.31 0 1.31.6.1-r5
Chainguard k3s-static 0 1.33.0.1-r2
Chainguard melange 0 0.26.0-r1
Chainguard melange-microvm-init 0 0.26.0-r1
Chainguard wolfictl 0 0.37.1-r1
Chainguard zot 0 2.1.3-r0
Wolfi k3s 0 1.33.0.1-r2
Wolfi k3s-embedded 0 1.33.0.1-r2
Wolfi k3s-images 0 1.33.0.1-r2
Wolfi k3s-multicall 0 1.33.0.1-r2
Wolfi k3s-static 0 1.33.0.1-r2
Wolfi melange 0 0.26.0-r1
Wolfi melange-microvm-init 0 0.26.0-r1
Wolfi wolfictl 0 0.37.1-r1
Wolfi zot 0 2.1.3-r0
go github.com/containerd/containerd/v2 2.0.1 2.0.5
openSUSE:Leap 16.0 trivy 0 0.66.0-bp160.1.1
openSUSE:Tumbleweed govulncheck-vulndb 0 0.0.20250523T151856-1.1
openSUSE:Tumbleweed trivy 0 0.65.0-1.1

Related vulnerabilities