CVE-2026-93151 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
nvmet-rdma: исправлена утечка ресурсов ответа при разрыве очереди (queue teardown)
При удалении nvme-таргета с использованием транспорта RDMA, пока операции ввода/вывода находятся в процессе выполнения, ответ может быть отправлен, но его подтверждение отправки (send completion) никогда не доставляется до того, как соединение будет разорвано. В результате функции `nvmet_rdma_send_done()` и `nvmet_rdma_release_rsp()` никогда не вызываются для данного ответа, что приводит к утечке выделенного контекста чтения/записи RDMA и дескрипторов списков данных запроса (SGL).
Эти утечки памяти воспроизводятся при запуске теста blktests nvme/061 с использованием транспорта rdma и драйвера siw. Функция ядра kmemleak сообщает о них следующим образом:
unreferenced object 0xffff88812bc490c0 (size 32): comm "kworker/2:1H", pid 409, jiffies 4307744490 backtrace (crc 89afd339): __kmalloc_noprof+0x5f9/0x890 sgl_alloc_order+0x7b/0x380 nvmet_req_alloc_sgls+0x290/0x4f0 [nvmet]
nvmet_rdma_map_sgl_keyed+0x241/0x12e0 [nvmet_rdma]
nvmet_rdma_handle_command+0x73e/0xb80 [nvmet_rdma]
__ib_process_cq+0x149/0x4c0 [ib_core]
ib_cq_poll_work+0x49/0x160 [ib_core]
process_one_work+0x8b2/0x1640 worker_thread+0x5fd/0xfe0 kthread+0x367/0x460 ret_from_fork+0x655/0x9d0 ret_from_fork_asm+0x1a/0x30
unreferenced object 0xffff88814bd05e80 (size 64): comm "kworker/3:1H", pid 148, jiffies 4295195428 backtrace (crc e35510cb): __kmalloc_noprof+0x5f9/0x890 rdma_rw_ctx_init+0x333/0x1fa0 [ib_core]
nvmet_rdma_map_sgl_keyed+0x5c8/0x12e0 [nvmet_rdma]
nvmet_rdma_handle_command+0x73e/0xb80 [nvmet_rdma]
__ib_process_cq+0x149/0x4c0 [ib_core]
ib_cq_poll_work+0x49/0x160 [ib_core]
process_one_work+0x8b2/0x1640 worker_thread+0x5fd/0xfe0 kthread+0x367/0x460 ret_from_fork+0x655/0x9d0 ret_from_fork_asm+0x1a/0x30
Чтобы избежать утечек памяти, необходимо освобождать память для операций ввода/вывода, находящихся в процессе выполнения (in-flight responses), при разрыве очереди QP. Вызовите функцию `nvmet_rdma_free_rsp_resources()`, которая освободит контекст чтения/записи RDMA и дескрипторы списков данных запроса (SGL) для таких ответов.
If you want to get best quality of vulnerability data, you may have to visit VulDB.