CRITICAL🇬🇧 English

CVE-2026-52989

Linux kernel nvmet-tcp: błąd obsługi niezainicjowanego iteratora w PDU

CVSS 9.8pub. 2026-06-24upd. 2026-06-30

Podatność w podsystemie nvmet-tcp jądra Linux polega na nieprawidłowej propagacji błędów z funkcji nvmet_tcp_build_pdu_iovec(), co prowadzi do użycia niezainicjowanego iteratora wiadomości. Jest to krytyczna luka (CVSS 9.8) umożliwiająca atakującemu sieciowe oddziaływanie na system bez uwierzytelnienia.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Funkcja nvmet_tcp_build_pdu_iovec() wykrywa nieprawidłową długość lub offset PDU i wywołuje nvmet_tcp_fatal_error(), jednak zwraca typ void — nie informuje wywołujących o wystąpieniu błędu. Funkcje wywołujące, takie jak nvmet_tcp_handle_h2c_data_pdu(), kontynuują działanie i nadpisują stan kolejki (queue->rcv_state = NVMET_TCP_RECV_DATA), mimo że iterator wiadomości cmd->recv_msg.msg_iter pozostał niezainicjowany. W konsekwencji pętla odbioru danych przez gniazdo może próbować zapisywać przychodzące dane sieciowe do niezainicjowanego obszaru pamięci.

Skutki

Atakujący zdalnie, bez uwierzytelnienia, może doprowadzić do uszkodzenia pamięci jądra, potencjalnie osiągając naruszenie poufności, integralności oraz dostępności systemu (RCE lub crash jądra).

Mitygacja

Należy zastosować patche dostępne w referencjach producenta (commity: 046fa5c72d15, 3df42a854686, c2a11441538b, d7c8f95f599b, ea8e356acb16 w repozytoriach stable jądra Linux). Zaleca się aktualizację do wersji jądra zawierającej poprawkę zgodnie ze wskazaniami dystrybucji.

Kogo dotyczy

Jądro Linux z włączonym podsystemem nvmet-tcp; szczegółowe wersje wskazane w referencjach producenta (commitach stabilnych gałęzi kernela).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Memory
CWE
Referencje