CVE-2026-89968 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
nvmet-tcp: Ablehnung von unerwünschten H2CData-PDUs
nvmet_tcp_handle_h2c_data_pdu() akzeptiert ein H2CData-PDU, nachdem es lediglich überprüft hat, dass dessen TTAG (Tag) ein gültiger Index im zulässigen Bereich für Befehle ist und die Datenpuffer des Befehls gemappt sind. Es wird niemals geprüft, ob das Zielgerät diese Daten tatsächlich angefordert hat, indem es eine R2T-Antwort (Ready To Transfer) für den Befehl sendet.
Ein Remote-Host kann dies ausnutzen. Er übermittelt einen Schreibbefehl, der den R2C-Pfad nutzt, und sendet vor der Übertragung der R2T durch das Zielgerät ein H2CData-PDU für die Tag dieses Befehls. Die Daten vervollständigen den Befehl frühzeitig, und wenn der Befehl anschließend synchron fehlschlägt (z. B. aufgrund einer Längenabweichung, die von nvmet_check_transfer_len() erkannt wird), wird er ein zweites Mal abgeschlossen. Jeder Abschluss ruft nvmet_tcp_queue_response() auf, sodass derselbe Befehl während seiner noch bestehenden Verknüpfung doppelt zur queue->resp_list hinzugefügt wird; der zweite Aufruf von llist_add() lässt den Knoten auf sich selbst verweisen (lentry->next == lentry).
nvmet_tcp_process_resp_list() durchläuft daraufhin diesen selbstreferenziellen Knoten und fügt den Befehl doppelt zur resp_send_list hinzu. Mit CONFIG_DEBUG_LIST löst dies die Prüfung „list_add double add“ aus (kernel BUG); ohne diese Konfiguration terminiert die Schleife nie, und der nvmet_tcp-Arbeitswarteschlangen-Thread hängt sich fest (soft-lockup). Die Schwachstelle ist remote auslösbar und erfordert keine Authentifizierung in einem allow_any_host-Subsystem.
Es wird nun verfolgt, ob eine R2T für einen Befehl übermittelt wurde, und ein H2CData-PDU, das vor der Übertragung dieser Antwort eingeht, wird abgelehnt. Das Flag wird bei der Wiederverwendung des Befehls zurückgesetzt (nvmet_tcp_get_cmd() setzt cmd->flags auf null) und bleibt über die mehreren H2CData-PDUs einer einzelnen angeforderten Datenübertragung hinweg gesetzt.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.