containerd user ID handling bypass allows runAsNonRoot evasion
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.7.32, 2.0.9, 2.2.4, 2.3.1
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 1 proof of concept on GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
containerd is an open-source container runtime. In versions prior to 1.7.32, 2.0.9, 2.2.4 and 2.3.1, containers launched with a numeric User directive that cannot be parsed as a 32-bit integer are incorrectly treated as a username, leading to runAsNonRoot evasion. 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. This issue has been fixed in versions 1.7.32, 2.0.9, 2.2.4 and 2.3.1.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- containerd containerd
fixed in 1.7.32; From 2.0.4 · fixed in 2.0.9; From 2.0.10 · fixed in 2.2.4; From 2.2.5 · fixed in 2.3.1
- github.com/containerd/containerdGo
From 1.7.27 · fixed in 1.7.32
- github.com/containerd/containerd/v2Go
From 2.0.4 · fixed in 2.0.9; From 2.1.0-beta.0 · fixed in 2.2.4; From 2.3.0-beta.0 · fixed in 2.3.1
- github.com/containerd/containerd/v2Go
From 2.0.4 · fixed in 2.0.9
- github.com/containerd/containerd/v2Go
From 2.1.0-beta.0 · fixed in 2.2.4
- github.com/containerd/containerd/v2Go
From 2.3.0-beta.0 · fixed in 2.3.1