GHSA-rp3h-jf77-q9p4: Go/github.com/containerd/containerd/v2 vulnerability
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 security@containerd.io
To report a security issue in containerd: Report a new vulnerability Email us at security@containerd.io
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/containerd/containerd/v2to a version that resolves this vulnerability.Fixed in 2.3.5 - Upgrade
Upgrade
go/github.com/containerd/containerd/v2to a version that resolves this vulnerability.Fixed in 2.2.8 - Upgrade
Upgrade
go/github.com/containerd/containerdto a version that resolves this vulnerability.Fixed in 1.7.35 - Upgrade
Upgrade
go/github.com/containerd/containerd/v2to a version that resolves this vulnerability.Fixed in 2.0.12 - Upgrade
Upgrade
containerdto a version that resolves this vulnerability.Fixed in 2.3.5 - Upgrade
Upgrade
containerdto a version that resolves this vulnerability.Fixed in 2.2.8 - Upgrade
Upgrade
containerdto a version that resolves this vulnerability.Fixed in 2.0.12 - Upgrade
Upgrade
containerdto a version that resolves this vulnerability.Fixed in 1.7.35 - Compensating control
Until the patch can be applied, only pull and import trusted images from known registries.
Event History
Frequently Asked Questions
What attacker-controlled input is required to trigger the issue?
An attacker needs to provide a maliciously crafted container image containing specific file configurations in its layers. The issue is triggered when that image is pulled or imported and containerd unpacks the affected layer.
What is the operational impact in a Kubernetes environment?
Long-running image unpack operations can delay startup of containers using the malicious image. Where Kubernetes limits concurrent image pulls, those operations can consume available pull concurrency and delay unrelated deployments.
What can be done before an update is available?
There are no known technical workarounds. Until patched, only pull or import trusted images from known registries.
Which containerd releases contain the fix?
The fix is available in containerd 2.3.5, 2.2.8, 2.0.12, and 1.7.35.