🔍 CVE-2026-93151

7.5
CVSS Score
HIGH
2026-09-17
2026-10-19 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 nvmet-rdma 구성 요소에서 RDMA 전송을 사용하는 NVMe 타겟이 I/O 작업 중 제거될 때 응답 리소스가 해제되지 않는 취약점입니다. 이로 인해 할당된 RDMA 읽기/쓰기 컨텍스트와 요청 SGL(Scatter Gather List)이 메모리에 남아 메모리 누수가 발생합니다.

💡 쉬운 설명

데이터를 주고받는 도중에 연결이 갑자기 끊기면, 사용하던 메모리를 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이 현상이 반복되면 시스템의 메모리가 점차 부족해질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nvmet-rdma: fix response resource leak on queue teardown When an nvme target with rdma transport is removed while I/Os are in flight, a response can be posted but its send completion is never delivered before the connection is torn down. As a result nvmet_rdma_send_done() and nvmet_rdma_release_rsp() are never called for the response, and this leaks the allocated RDMA read/write context and request SGLs. These leaks are recreated by running blktests nvme/061 with the rdma transport and the siw driver. Kernel kmemleak feature reports them as follows: 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 To avoid the memory leaks, reclaim the memory of the in-flight responses when the queue QP is torn down. Call nvmet_rdma_free_rsp_resources() that frees up the RDMA read/write context and the request SGLs of such responses.

📍 영향받는 시스템

Linux kernel (nvmet-rdma component using RDMA transport)

⚔️ 공격 벡터

RDMA를 사용하는 NVMe 타겟 환경에서 I/O가 진행 중인 상태로 연결을 강제로 종료하여 메모리 누수 유도

🛡️ 대응 방법

커널 업데이트를 통해 큐(QP) 해제 시 인플라이트(in-flight) 응답의 리소스를 재할당하도록 패치 적용

🔧 검증 코드

커널 버전을 확인하고 해당 심볼이 커널에 포함되어 있는지 확인하여 패치 적용 여부를 검토합니다.

Shell / Script
uname -r && grep -i 'nvmet_rdma' /proc/kallsyms

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel