In the Linux kernel, the following vulnerability has been resolved:
RDMA/cma: Fix hang when cma_netevent_callback fails to queue_work
The cited commit fixed a crash when cma_netevent_callback was called for a cma_id while work on that id from a previous call had not yet started. The work item was re-initialized in the second call, which corrupted the work item currently in the work queue.
However, it left a problem when queue_work fails (because the item is still pending in the work queue from a previous call). In this case, cma_id_put (which is called in the work handler) is therefore not called. This results in a userspace process hang (zombie process).
Fix this by calling cma_id_put() if queue_work fails.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 6.1.135 | 6.1.142 |
| linux / linux_kernel | 6.6.88 | 6.6.94 |
| linux / linux_kernel | 6.12.25 | 6.12.34 |
| linux / linux_kernel | 6.14.4 | 6.15 |
| linux / linux_kernel | 6.15.1 | 6.15.3 |
| linux / linux_kernel | 6.15 | 6.15.x |
| linux / linux_kernel | 6.15-rc3 | 6.15-rc3.x |
| linux / linux_kernel | 6.15-rc4 | 6.15-rc4.x |
| linux / linux_kernel | 6.15-rc5 | 6.15-rc5.x |
| linux / linux_kernel | 6.15-rc6 | 6.15-rc6.x |
| linux / linux_kernel | 6.15-rc7 | 6.15-rc7.x |
| debian / debian_linux | 11.0 | 11.0.x |