GHSA-7jxh-36q5-gcqv
containerd: CRI ExecSync Goroutine Leak Leads to Node-Level Denial of Service
Quick fix
GHSA-7jxh-36q5-gcqv — github.com/containerd/containerd/v2: upgrade to the fixed version with the command below.
go get github.com/containerd/containerd/v2@v2.0.12Details
### Impact
A bug in containerd's CRI ExecSync implementation allows exec probes and lifecycle hooks with background child processes to keep containerd's stdio-drain goroutines indefinitely blocked. Because the I/O drain phase lacks a default timeout or context cancellation handling, repeated ExecSync invocations (like probes) that include long-lived background processes against a container can cause containerd to leak goroutines and host memory. Over time, this resource exhaustion can cause the containerd daemon to be terminated by the OOM killer, rendering containerd unavailable until it is restarted. This issue affects containerd on Linux systems running with the CRI plugin enabled. Users not using containerd's CRI implementation or not running containers on Linux are not affected.
### 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
Ensure exec probes and lifecycle hooks do not launch long-lived background child processes.
### Credits
The containerd project would like to thank XlabAI Team of Tencent Xuanwu Lab (xlabai@tencent.com), including Guannan Wang, Zhanpeng Liu, Jiashuo Liang, and Guancheng Li, and @IamwhatIamSY who independently discovered and responsibly disclosed this issue in accordance with the [containerd security policy](https://github.com/containerd/project/blob/main/SECURITY.md).
### For more information
If there are any questions or comments about this advisory:
* Open an issue in [containerd](https://github.com/containerd/containerd/issues/new/choose) * Send an email to [security@containerd.io](mailto:security@containerd.io)
To report a security issue in containerd: * [Report a new vulnerability](https://github.com/containerd/containerd/security/advisories/new) * Send an email to [security@containerd.io](mailto:security@containerd.io)
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 2.0.12go get github.com/containerd/containerd/v2@v2.0.120Fixed in: 1.7.35go get github.com/containerd/containerd@v1.7.352.2.0Fixed in: 2.2.8go get github.com/containerd/containerd/v2@v2.2.82.3.0Fixed in: 2.3.5go get github.com/containerd/containerd/v2@v2.3.5References
- https://github.com/containerd/containerd/security/advisories/GHSA-7jxh-36q5-gcqv[WEB]
- https://github.com/containerd/containerd[PACKAGE]
- https://github.com/containerd/containerd/releases/tag/v1.7.35[WEB]
- https://github.com/containerd/containerd/releases/tag/v2.0.12[WEB]
- https://github.com/containerd/containerd/releases/tag/v2.2.8[WEB]
- https://github.com/containerd/containerd/releases/tag/v2.3.5[WEB]