CVE-2026-93151 in Linux
要約
〜によって VulDB • 2026年09月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nvmet-rdma: キューの破棄時のレスポンスリソースリークの修正
RDMAトランスポートを使用するNVMeターゲットが、I/O処理中(in-flight)に削除されると、レスポンスはポストされるものの、接続が切断される前に送信完了通知が配信されない場合があります。その結果、nvmet_rdma_send_done()およびnvmet_rdma_release_rsp()がレスポンスに対して呼び出されず、割り当てられたRDMA読み書きコンテキストとリクエストSGL( Scatter-Gather List)がリークします。
これらのメモリリークは、rdmaトランスポートとsiwドライバを使用してblktests nvme/061を実行することで再現できます。カーネルの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
メモリリークを回避するため、キューQPが破棄される際に処理中のレスポンスのメモリを解放します。nvmet_rdma_free_rsp_resources()を呼び出し、そのようなレスポンスに関連するRDMA読み書きコンテキストとリクエストSGLを解放します。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.