Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-22998

Опубликовано: 25 янв. 2026
Источник: redhat
CVSS3: 6.4
EPSS Низкий

Описание

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

Отчет

A NULL-pointer dereference in the NVMe/TCP target path occurs because nvmet_tcp_build_pdu_iovec() can be called when cmd.req.sg and/or cmd.iov are not initialized. A remote host can trigger this by sending an out-of-order H2C_DATA PDU immediately after the ICREQ/ICRESP handshake (e.g., before CONNECT), causing a kernel crash (DoS). Privileges are typically not required beyond network reachability to the NVMe/TCP target. NVMe/TCP targets are typically deployed inside isolated storage or data-center networks and are not exposed to the public Internet. In practice, exploitation usually requires access to a local or trusted internal network where NVMe/TCP is used for remote memory or storage access over TCP.

Меры по смягчению последствий

To mitigate this issue, prevent module nvmet-tcp from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically. By default it is disabled in Red Hat Enterprise Linux and only root user can enable it.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 6kernelNot affected
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 9kernel-rtAffected
Red Hat Enterprise Linux 10kernelFixedRHSA-2026:272116.02.2026
Red Hat Enterprise Linux 8kernel-rtFixedRHSA-2026:237810.02.2026
Red Hat Enterprise Linux 8kernelFixedRHSA-2026:226409.02.2026
Red Hat Enterprise Linux 9kernelFixedRHSA-2026:272216.02.2026
Red Hat Enterprise Linux 9kernelFixedRHSA-2026:272216.02.2026

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-476
https://bugzilla.redhat.com/show_bug.cgi?id=2432671kernel: nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec

EPSS

Процентиль: 13%
0.00044
Низкий

6.4 Medium

CVSS3

Связанные уязвимости

CVSS3: 7.5
ubuntu
около 2 месяцев назад

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 cm...

CVSS3: 7.5
nvd
около 2 месяцев назад

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

CVSS3: 5.5
msrc
26 дней назад

nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec

CVSS3: 7.5
debian
около 2 месяцев назад

In the Linux kernel, the following vulnerability has been resolved: n ...

CVSS3: 5.5
github
около 2 месяцев назад

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 bo...

EPSS

Процентиль: 13%
0.00044
Низкий

6.4 Medium

CVSS3