containerd: host disk exhaustion when pulling an image with an unbounded layer stream
Summary
Impact
A bug in containerd's image pull process can cause containerd to exhaust host disk space when downloading image layers. When pulling an image, containerd streams layer data into its content store without bounding incoming bytes to the declared size before validation. Downloading a craf...
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| go | github.com/containerd/containerd/v2 |
>= 2.0.0, < 2.0.14, >= 2.2.0, < 2.2.10, >= 2.3.0, < 2.3.7, >= 2.4.0, < 2.4.2 |
2.4.2 |
Original description The description as published by the source.
Impact
A bug in containerd's image pull process can cause containerd to exhaust host disk space when downloading image layers. When pulling an image, containerd streams layer data into its content store without bounding incoming bytes to the declared size before validation. Downloading a crafted image or pulling from a malicious registry can cause containerd to continuously write data to the host filesystem until disk space is exhausted. In Kubernetes, this resource exhaustion can trigger node disk pressure, render the kubelet and containerd unresponsive, and block new pod startup.
Patches
This bug has been fixed in containerd 2.4.2, 2.3.7, 2.2.10, and 2.0.14. Users should update to these versions to resolve the issue.
Workarounds
Restrict pod image references to trusted registries (for example, using a Kubernetes ValidatingAdmissionPolicy or admission webhook).
Credits
The containerd project would like to thank Jakub Ciolek of AlphaSense 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 security@containerd.io
To report a security issue in containerd:
- [Report a new vulnerability](https://github.com/containerd/containerd/securi…
Source: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV
References
- GITHUB_REPO_ADVISORY containerd/containerd