Description
In the Linux kernel, the following vulnerability has been resolved:

nvmet-tcp: Fix potential UAF when ddgst mismatch

Shivam Kumar found via vulnerability testing:
When data digest is enabled on an NVMe/TCP connection and a digest
mismatch occurs on a non-final H2C_DATA PDU during an R2T-based
data transfer, the digest error handler in nvmet_tcp_try_recv_ddgst()
calls nvmet_req_uninit() — which performs percpu_ref_put() on the
submission queue — but does NOT mark the command as completed. It
does not set cqe->status, does not modify rbytes_done, and does not
clear any flag. When the subsequent fatal error triggers queue
teardown, nvmet_tcp_uninit_data_in_cmds() iterates all commands,
checks nvmet_tcp_need_data_in() for each one, and finds that the
already-uninited command still appears to need data (because
rbytes_done < transfer_len and cqe->status == 0). It therefore calls
nvmet_req_uninit() a second time on the same command — a double
percpu_ref_put against a single percpu_ref_get.
Published: 2026-07-27
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, the nvmet‑tcp subsystem contains a use‑after‑free condition that is triggered when a data digest mismatch occurs during an R2T‑based transfer that is not the final packet. The digest error handler incorrectly frees the command’s reference without marking it completed, allowing a second free when the queue is torn down. This double free can corrupt kernel memory, potentially causing a kernel crash or, if the memory corruption can be controlled, arbitrary code execution. The vulnerability is identified as CWE‑1341, a use‑after‑free flaw.

Affected Systems

The bug affects all Linux kernel versions shipped before the patch that eliminates the double free. Any distribution that uses the nvmet‑tcp driver with data digest enabled on NVMe/TCP connections is susceptible. Although the CNA vendor list contains only "Linux", the issue is a generic kernel flaw that applies to all affected kernel releases.

Risk and Exploitability

The CVSS score of 9.8 indicates a high level of severity. The EPSS score of < 1% indicates a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog, implying no known public exploit at present. An attacker would need the ability to send crafted NVMe/TCP packets with a mismatched data digest, which requires privileged network access or compromise of a device that uses data digest. If such an attacker can inject the wrong digest, they could trigger the double free and cause a kernel crash.

Generated by OpenCVE AI on August 3, 2026 at 17:59 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a kernel version that includes the nvmet‑tcp fix from the upstream patch.
  • If an immediate kernel upgrade is not feasible, disable data‑digest validation on NVMe/TCP connections to prevent the digest‑mismatch trigger.
  • Monitor kernel logs for digest‑mismatch errors and verify that queue teardown processes complete without remaining commands needing data before the kernel is rebooted.

Generated by OpenCVE AI on August 3, 2026 at 17:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
Debian DSA Debian DSA DSA-6405-1 linux security update
History

Thu, 30 Jul 2026 06:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Tue, 28 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1341
References
Metrics threat_severity

None

cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 27 Jul 2026 07:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: Fix potential UAF when ddgst mismatch Shivam Kumar found via vulnerability testing: When data digest is enabled on an NVMe/TCP connection and a digest mismatch occurs on a non-final H2C_DATA PDU during an R2T-based data transfer, the digest error handler in nvmet_tcp_try_recv_ddgst() calls nvmet_req_uninit() — which performs percpu_ref_put() on the submission queue — but does NOT mark the command as completed. It does not set cqe->status, does not modify rbytes_done, and does not clear any flag. When the subsequent fatal error triggers queue teardown, nvmet_tcp_uninit_data_in_cmds() iterates all commands, checks nvmet_tcp_need_data_in() for each one, and finds that the already-uninited command still appears to need data (because rbytes_done < transfer_len and cqe->status == 0). It therefore calls nvmet_req_uninit() a second time on the same command — a double percpu_ref_put against a single percpu_ref_get.
Title nvmet-tcp: Fix potential UAF when ddgst mismatch
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:42:45.280Z

Reserved: 2026-07-19T15:36:31.795Z

Link: CVE-2026-64535

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-07-27T08:16:22.773

Modified: 2026-08-05T08:16:36.013

Link: CVE-2026-64535

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-27T06:32:34Z

Links: CVE-2026-64535 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T18:00:11Z

Weaknesses
  • CWE-1341

    Multiple Releases of Same Resource or Handle