CVE-2026-22998: nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec
In the Linux kernel, the following vulnerability has been resolved:
nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec
Commit efa56305908b ("nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length")
added ttag bounds checking and data_offset
validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate
whether the command's data structures (cmd->req.sg and cmd->iov) have
been properly initialized before processing H2C_DATA PDUs.
The nvmet_tcp_build_pdu_iovec() function dereferences these pointers
without NULL checks. This can be triggered by sending H2C_DATA PDU
immediately after the ICREQ/ICRESP handshake, before
sending a CONNECT command or NVMe write command.
Attack vectors that trigger NULL pointer dereferences:
1. H2C_DATA PDU sent before CONNECT → both pointers NULL
2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL
3. H2C_DATA PDU for uninitialized command slot → both pointers NULL
The fix validates both cmd->req.sg and cmd->iov before calling
nvmet_tcp_build_pdu_iovec(). Both checks are required because:
- Uninitialized commands: both NULL
- READ commands: cmd->req.sg allocated, cmd->iov NULL
- WRITE commands: both allocated
Security readout for executives and security teams
Plain-English summary
CVE-2026-22998 is a Linux kernel availability flaw in the NVMe-over-TCP target path. A remote unauthenticated network peer may be able to crash an affected host if that host exposes the vulnerable nvmet-tcp service. The issue is high priority for storage servers, but likely irrelevant to systems that do not run NVMe/TCP target functionality.
Executive priority
Treat this as high priority for Linux storage infrastructure exposing NVMe/TCP. The business risk is service disruption through host crash. It should be remediated in storage maintenance windows, with network restriction used immediately where patching needs scheduling.
Technical view
The flaw is a NULL pointer dereference in nvmet_tcp_build_pdu_iovec(). Certain H2C_DATA PDUs can reach processing before the command scatter-gather or iovec structures are initialized, including before CONNECT, for READ commands, or for unused command slots. The upstream fix adds validation for both cmd->req.sg and cmd->iov before building the PDU iovec.
Likely exposure
Exposure is most likely on Linux systems configured as NVMe-over-TCP targets using nvmet-tcp and reachable from untrusted networks. Ordinary Linux endpoints without NVMe/TCP target service exposure are not clearly exposed based on the provided sources.
Exploitation context
The CVSS vector is network, low complexity, no privileges, no user interaction, with availability impact only. The source bundle does not show CISA KEV listing or cited evidence of active exploitation. The described outcome is kernel panic or denial of service, not code execution.
Researcher notes
The evidence supports denial of service through invalid H2C_DATA handling in nvmet-tcp. Both cmd->req.sg and cmd->iov checks matter because different command states leave different pointers uninitialized. The provided sources do not establish exploitation in the wild or impact beyond availability.
Mitigation direction
Apply a vendor kernel update containing the relevant stable nvmet-tcp fix.
Restrict NVMe/TCP target access to trusted storage networks only.
Disable nvmet-tcp target functionality where it is not required.
Check Linux distribution advisories for fixed package versions.
Prioritize externally reachable storage targets before isolated lab systems.
Validation and detection
Inventory systems acting as NVMe-over-TCP targets.
Confirm affected hosts are not reachable from untrusted networks.
Verify installed kernels include the relevant upstream stable fix.
Review kernel crash logs for nvmet_tcp_build_pdu_iovec NULL pointer dereferences.
Track vendor advisories for package-level fixed versions.
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.
cve · low confidence lookup
CVE-2026-22998 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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.
1CVSS vectors
3Timeline events
0ADP providers
8Source links
CVSS vector scores
1 official score
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.