CVE-2026-95838 — containerd
Fix: containerd/containerd@e6ca378CVE-2026-95838 is a Uncontrolled Resource Consumption vulnerability in github.com/containerd/containerd/v2. A fix is available for github.com/containerd/containerd/v2 — see the affected versions and patch details below.
containerd: Unpack DoS via repeated opaque whiteouts
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
github.com/containerd/containerd/v2🐹github.com/containerd/containerd🐹github.com/containerd/containerd/v2🐹github.com/containerd/containerd/v2Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Impact
A vulnerability exists in containerd's layer unpack handler where the processing of certain image layers causes superlinear time complexity. During the unpack operation, specific file configurations within the layer can trigger repeated directory traversals.
Consequently, pulling or importing a maliciously crafted image can result in increased unpack times and a moderate increase in CPU usage. This delays container startup, even if the compressed image layers are small. Additionally, in orchestrators like Kubernetes that apply concurrency limits to image pulls, these excessively long operations can reduce the available concurrency for other pulls, potentially delaying unrelated container deployments.
Patches
This bug has been fixed in containerd 2.3.5, 2.2.8, 2.0.12, and 1.7.35. Users should update to these versions to resolve the issue.
Workarounds
There are no known workarounds for this issue. Users are advised to only pull and import trusted images from known registries until the patch can be applied.
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 [email protected]
To report a security issue in containerd:
- Report a new vulnerability
- Email us at [email protected]
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/containerd/containerd/v2 | all versions | 2.0.12go get github.com/containerd/containerd/v2@v2.0.12 |
| 🐹Go | github.com/containerd/containerd | all versions | 1.7.35go get github.com/containerd/containerd@v1.7.35 |
| 🐹Go | github.com/containerd/containerd/v2 | ≥ 2.2.0&&< 2.2.8 | 2.2.8go get github.com/containerd/containerd/v2@v2.2.8 |
| 🐹Go | github.com/containerd/containerd/v2 | ≥ 2.3.0&&< 2.3.5 | 2.3.5go get github.com/containerd/containerd/v2@v2.3.5 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/containerd/containerd/v2, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/containerd/containerd/v2 to 2.0.12 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-95838 is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
Frequently Asked Questions
Is CVE-2026-95838 in your dependencies?
Find it across Go, including transitive dependencies.