CVE-2026-64534 nvmet-tcp: check INIT_FAILED before nvmet_req_uninit in digest error path
A refcount underflow in the Linux kernel's nvmet-tcp module causes a use-after-free diagnostic and permanent workqueue deadlock, leading to denial of service.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-64534?
CVE-2026-64534 is a critical use after free vulnerability in Linux, published on 27 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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().
Weakness: CWE-667
Which versions are affected by CVE-2026-64534?
How do I fix CVE-2026-64534?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2026-64534 being exploited?
There is no known exploitation of CVE-2026-64534 in the wild and no public exploit code.
Sources
Also known as BELL-CVE-2026-64534, DEBIAN-CVE-2026-64534, GHSA-6vg3-7hp6-mqc5, ROOT-OS-DEBIAN-12-CVE-2026-64534, UBUNTU-CVE-2026-64534.