CVE-2026-52989: nvmet-tcp: propagate nvmet_tcp_build_pdu_iovec() errors to its callers
In the Linux kernel, the following vulnerability has been resolved:
nvmet-tcp: propagate nvmet_tcp_build_pdu_iovec() errors to its callers
Currently, when nvmet_tcp_build_pdu_iovec() detects an out-of-bounds
PDU length or offset, it triggers nvmet_tcp_fatal_error(cmd->queue)
and returns early. However, because the function returns void, the
callers are entirely unaware that a fatal error has occurred and
that the cmd->recv_msg.msg_iter was left uninitialized.
Callers such as nvmet_tcp_handle_h2c_data_pdu() proceed to blindly
overwrite the queue state with queue->rcv_state = NVMET_TCP_RECV_DATA
Consequently, the socket receiving loop may attempt to read incoming
network data into the uninitialized iterator.
Fix this by shifting the error handling responsibility to the callers.
Security readout for executives and security teams
Plain-English summary
A flaw in Linux’s NVMe-over-TCP target can mishandle an invalid network message and continue processing with uninitialized state. A remote, unauthenticated peer may trigger unsafe memory access. The supplied CVSS score is 9.8, indicating potentially severe confidentiality, integrity, and availability impact, although the bundle does not document a demonstrated outcome.
Executive priority
Prioritize rapid assessment of storage servers using Linux NVMe-over-TCP targets, especially where initiators cross trust boundaries. Patch confirmed exposures promptly and restrict access while updates are validated. Broad emergency action across every Linux host is not supported because exploitation requires the affected nvmet-tcp target path, and active exploitation is not documented.
Technical view
nvmet_tcp_build_pdu_iovec() detects an out-of-bounds PDU length or offset but previously returned without informing callers. A caller could then set NVMET_TCP_RECV_DATA and let the socket loop receive data through an uninitialized msg_iter. The upstream correction returns errors to callers so they preserve fatal-error handling instead of continuing with invalid receive state.
Likely exposure
Exposure is most likely on Linux systems operating the nvmet-tcp target and accepting NVMe/TCP traffic from untrusted or compromised initiators. Systems not using this component are unlikely to expose the vulnerable path. The supplied version data is unusual and should be reconciled against distribution advisories and exact kernel builds.
Exploitation context
The CVSS vector describes network-accessible, low-complexity, unauthenticated exploitation without user interaction. However, the source bundle marks this CVE as absent from KEV and provides no evidence of active exploitation, public exploit code, or confirmed attacks. Practical exploitability and reliable impact are therefore not established by the supplied evidence.
Researcher notes
The core defect is ignored fatal-error state, categorized as CWE-390. The security consequence arises when receive processing continues with an uninitialized iterator after malformed PDU bounds are detected. The supplied affected-version entries should not be interpreted as simple ranges; validate fixes using distribution backports or the referenced stable commits. No source establishes exploitation reliability or a specific memory-corruption primitive.
Mitigation direction
Install a vendor-supported kernel update containing the cited nvmet-tcp error-propagation fix.
Confirm the selected distribution package backports the fix, rather than relying only on its version number.
Disable nvmet-tcp where it is not operationally required.
Restrict NVMe/TCP target access to trusted initiators and storage networks.
Consult Linux distribution guidance if an updated package is not yet available.
Validation and detection
Inventory hosts loading or configuring the nvmet-tcp target component.
Identify exact kernel packages, build revisions, and vendor backport status.
Verify the installed source or vendor changelog includes the cited fix.
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-390: 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
5Timeline events
1ADP providers
10Source links
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-390 · source CWE mapping
Detection of Error Condition Without Action
Detection of Error Condition Without Action represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.