CVE-2025-21927: nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
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.
Security readout for executives and security teams
Plain-English summary
A Linux NVMe-over-TCP target can send a malformed header that causes memory corruption on an affected client when header digests are enabled. The result may include kernel crashes or broader system compromise, although the supplied sources do not document a demonstrated compromise or real-world exploitation.
Executive priority
Treat as an urgent infrastructure patch for organizations using NVMe/TCP with header digests. Prioritize storage clients connected across less-trusted boundaries. Systems not using NVMe/TCP, or not enabling header digests, do not match the documented trigger conditions.
Technical view
nvme_tcp_recv_pdu() failed to validate the received header length. With header digests enabled, an unexpected length can make nvme_tcp_verify_hdgst() write the calculated digest outside its allocated memory. The kernel fix rejects packets whose header length is unexpected.
Likely exposure
Exposure is limited to affected Linux systems using the NVMe/TCP initiator with header digests enabled. The supplied data flags versions 5.0, 6.12.19, 6.13.7, and 6.14, but does not clearly define complete ranges or distribution backports. Confirm status with the Linux distributor.
Exploitation context
The bundle marks KEV false, and no supplied source reports active exploitation or a public proof of concept. Triggering requires a target that sends a malformed NVMe/TCP packet while header digests are enabled.
Researcher notes
This is a CWE-787 out-of-bounds write involving digest placement after insufficient header-length validation. The supplied CVSS is 9.8, but practical reach depends on NVMe/TCP deployment and digest configuration. Version-range precision and exploitability beyond memory corruption are not established by the bundle.
Mitigation direction
Apply a vendor-supported kernel update containing the unexpected-header-length validation fix.
Check Linux distributor guidance for affected package versions and backported fixes.
Prioritize systems connecting to untrusted, compromised, or externally managed NVMe/TCP targets.
Until patched, restrict NVMe/TCP connectivity to authorized storage targets and controlled networks.
Validation and detection
Inventory Linux hosts using NVMe/TCP initiator functionality.
Determine whether header digests are enabled for active NVMe/TCP sessions.
Record each host's exact kernel package, release, and distributor patch level.
Confirm the installed kernel contains an applicable referenced fix or vendor backport.
After updating, verify the fixed kernel is running and storage sessions remain healthy.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-787: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
1ADP providers
4Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-787 · source CWE mapping
Out-of-bounds Write
Out-of-bounds Write represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.