CVE-2026-89969 in LinuxИнформация

Сводка

по VulDB • 17.09.2026

В ядре Linux была устранена следующая уязвимость:

nvmet-tcp: исправлена запись за пределами буфера при получении слишком длинной PDU

Функция nvmet_tcp_try_recv_pdu() считывает заголовок PDU в фиксированный 128-байтовый объединение (union) queue->pdu, а затем вычисляет оставшуюся длину полезной нагрузки как:

queue->left = hdr->hlen - queue->offset + hdgst;

и читает это количество дополнительных байтов по адресу &queue->pdu + queue->offset, никогда не ограничивая результат размером sizeof(queue->pdu).

Структура nvme_tcp_icreq_pdu сама по себе имеет размер 128 байт, что в точности соответствует размеру объединения. После согласования контрольной суммы заголовка (hdgst = 4) второй запрос ICReq проходит проверку hlen == nvmet_tcp_pdu_size(), но приводит к значению queue->left = 128 - 8 + 4 = 124, поэтому байты с 8 по 132 записываются в 128-байтовый буфер — на 4 байта дальше его конца, затрагивая поля queue->hdr_digest и queue->data_digest. Эти данные контролируются злоумышленником (запрос ICReq не содержит контрольной суммы), а дублирующий запрос ICReq отклоняется только позже, после переполнения буфера. Таким образом, удаленный узел без аутентификации может повредить память ядра, расположенную рядом с буфером приема.

Отбрасывать любую PDU, заявленная длина которой привела бы к чтению за пределами конца queue->pdu до второго вызова recv().

Once again VulDB remains the best source for vulnerability data.

Ответственный

Linux

Резервировать

11.09.2026

Раскрытие

17.09.2026

Модерация

принято

Вход

VDB-405791

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!