CVE-2025-21927 nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
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.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-debuginfo Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-devel Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-devel-matched Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-modules Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-modules-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debug-modules-extra Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-debuginfo Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-devel Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-devel-matched Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-modules Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-modules-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-64k-modules-extra Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-abi-stablelists Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-debuginfo Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-devel Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-devel-matched Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-modules Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-modules-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-modules-extra Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debug-uki-virt Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debuginfo Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debuginfo-common-aarch64 Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debuginfo-common-ppc64le Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debuginfo-common-s390x Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-debuginfo-common-x86_64 Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-devel Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-devel-matched Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-doc Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-modules Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-modules-core Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-modules-extra Red Hat:enterprise_linux:10.0 | All versions | 0:6.12.0-55.11.1.el10_0 |
kernel-rt Red Hat:enterprise_linux:10.0 | All versions | 0: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.
Other vulnerabilities in Linux kernel
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.