Bug 2432671 (CVE-2026-22998) - CVE-2026-22998 kernel: nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec
Summary: CVE-2026-22998 kernel: nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_b...
Keywords:
Status: NEW
Alias: CVE-2026-22998
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-01-25 15:02 UTC by OSIDB Bzimport
Modified: 2026-02-16 12:02 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:2264 0 None None None 2026-02-09 04:38:27 UTC
Red Hat Product Errata RHSA-2026:2378 0 None None None 2026-02-10 02:00:22 UTC
Red Hat Product Errata RHSA-2026:2721 0 None None None 2026-02-16 11:53:10 UTC
Red Hat Product Errata RHSA-2026:2722 0 None None None 2026-02-16 12:02:52 UTC

Description OSIDB Bzimport 2026-01-25 15:02:32 UTC
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

Comment 5 errata-xmlrpc 2026-02-09 04:38:26 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:2264 https://access.redhat.com/errata/RHSA-2026:2264

Comment 6 errata-xmlrpc 2026-02-10 02:00:21 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:2378 https://access.redhat.com/errata/RHSA-2026:2378

Comment 7 errata-xmlrpc 2026-02-16 11:53:09 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:2721 https://access.redhat.com/errata/RHSA-2026:2721

Comment 8 errata-xmlrpc 2026-02-16 12:02:50 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:2722 https://access.redhat.com/errata/RHSA-2026:2722


Note You need to log in before you can comment on or make changes to this bug.