CVE-2025-21927 nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()

Critical 9.8 Published Updated

A remote attacker can trigger memory corruption in the Linux kernel's NVMe-TCP driver by sending malformed packets when header digests are enabled.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2025-21927?

CVE-2025-21927 is a critical memory corruption vulnerability in Linux kernel, published on 1 Apr 2025. 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:

nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()

nvme_tcp_recv_pdu() doesn't check the validity of the header length. When header digests are enabled, a target might send a packet with an invalid header length (e.g. 255), causing nvme_tcp_verify_hdgst() to access memory outside the allocated area and cause memory corruptions by overwriting it with the calculated digest.

Fix this by rejecting packets with an unexpected header length.

Weakness: CWE-787

Which versions are affected by CVE-2025-21927?

It affects 1 product.

Linux distribution packages (40)
kernel Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-debuginfo Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-devel Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-devel-matched Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-modules Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-modules-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debug-modules-extra Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-debuginfo Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-devel Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-devel-matched Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-modules Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-modules-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-64k-modules-extra Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-abi-stablelists Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-debuginfo Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-devel Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-devel-matched Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-modules Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-modules-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-modules-extra Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debug-uki-virt Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debuginfo Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debuginfo-common-aarch64 Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debuginfo-common-ppc64le Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debuginfo-common-s390x Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-debuginfo-common-x86_64 Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-devel Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-devel-matched Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-doc Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-modules Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-modules-core Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-modules-extra Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0
kernel-rt Red Hat:enterprise_linux:10.0All versions0:6.12.0-55.11.1.el10_0

Products include Linux kernel.

How do I fix CVE-2025-21927?

Apply the vendor's patch.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2025-21927 being exploited?

There is no known exploitation of CVE-2025-21927 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-59922, AZL-59952, BELL-CVE-2025-21927, DEBIAN-CVE-2025-21927, GHSA-p4qc-cp8p-44wh, RHSA-2025:4339 and 13 more.

Is CVE-2025-21927 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free