Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: check INIT_FAILED before nvmet_req_uninit in digest error path
In nvmet_tcp_try_recv_ddgst(), when a data digest mismatch is detected, nvmet_req_uninit() is called unconditionally. However, if the command arrived via the nvmet_tcp_handle_req_failure() path, nvmet_req_init() had returned false and percpu_ref_tryget_live() was never executed. The unconditional percpu_ref_put() inside nvmet_req_uninit() then causes a refcount underflow, leading to a WARNING in percpu_ref_switch_to_atomic_rcu, a use-after-free diagnostic, and eventually a permanent workqueue deadlock.
Check cmd->flags & NVMET_TCP_F_INIT_FAILED before calling nvmet_req_uninit(), matching the existing pattern in nvmet_tcp_execute_request().
Details
- Affected product:
- AlmaLinux 9.2 ESU , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , Debian 11 ELS , TuxCare 9.6 ESU , TuxCare 9.8 ESU , Ubuntu 20.04 ELS
- Affected packages:
- kernel @ 4.18.0 (+7 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | Released |
67 kernels
|
| AlmaLinux 8 | Released |
134 kernels
|
| AlmaLinux 9 | Released |
135 kernels
|
| CentOS 8 | Released |
26 kernels
|
| CloudLinux OS 7h | Released |
118 kernels
|
| CloudLinux OS 8 | Released |
114 kernels
|
| Debian 11 | Released |
44 kernels
|
| Debian 11 cloud | Released |
24 kernels
|
| Debian 12 | Planned | — |
| Debian 13 | Released |
13 kernels
|
| Oracle Linux 10 | Released |
53 kernels
|
| Oracle Linux 8 | Released |
145 kernels
|
| Oracle Linux 8 UEK 7 | In Rollout |
112 kernels
|
| Oracle Linux 9 | Released |
134 kernels
|
| Oracle Linux 9 UEK 7 | Released |
112 kernels
|
| RHEL 10 | Released |
68 kernels
|
| RHEL 8 | Released |
143 kernels
|
| RHEL 9 | Released |
133 kernels
|
| Rocky Linux 10 | Released |
52 kernels
|
| Rocky Linux 8 | Released |
111 kernels
|
| Rocky Linux 9 | Released |
110 kernels
|
| Ubuntu 22.04 | Planned | — |
| Ubuntu 22.04 AWS | Planned | — |
| Ubuntu 22.04 Azure | Planned | — |
| Ubuntu 24.04 | Planned | — |
| Ubuntu 24.04 AWS | Planned | — |
| Ubuntu 26.04 | Released |
1 kernel
|