VDB
Sign up
MEDIUM

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.12

Details

### 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

Go/github.com/containerd/containerd/v2
Introduced in: 0Fixed in: 2.0.12
Fixgo get github.com/containerd/containerd/v2@v2.0.12
Go/github.com/containerd/containerd
Introduced in: 0Fixed in: 1.7.35
Fixgo get github.com/containerd/containerd@v1.7.35
Go/github.com/containerd/containerd/v2
Introduced in: 2.2.0Fixed in: 2.2.8
Fixgo get github.com/containerd/containerd/v2@v2.2.8
Go/github.com/containerd/containerd/v2
Introduced in: 2.3.0Fixed in: 2.3.5
Fixgo get github.com/containerd/containerd/v2@v2.3.5

References