KernelScan.io

HIGH Introduced in 6.13

nvmet NsList Deref

CVE-2026-80813

CVSS 7.5 / 10.0 KernelScan AI

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

01

In the Linux kernel, the following vulnerability has been resolved: nvmet: fix NULL pointer dereference in nvmet_execute_identify_nslist() When a host issues an Identify command with CNS 07h (Active Namespace ID List for a specific I/O Command Set), nvmet_execute_identify_nslist() is called with match_css set. The command-set filter dereferences req->ns, but this handler never calls nvmet_req_find_ns(), so req->ns is always NULL (nvmet_req_init() resets it to NULL). As soon as an enabled namespace with an NSID greater than the requested value exists, req->ns->csi dereferences a NULL pointer and oopses. Besides the crash, the comparison is logically wrong: to filter the list by command set it must test the command set of the namespace being iterated, not a single fixed value. Use the loop variable ns->csi.

02

Engine v0.6.0

Risk summary

A remote NVMe-oF host can crash the target kernel by sending an Identify command with CNS 07h. The handler dereferences an uninitialized namespace pointer, causing a kernel oops whenever at least one enabled namespace with a higher NSID exists. No privileges on the target system are required; only the ability to connect to the NVMe-oF target.

Affecteddrivers/nvme/target/admin-cmd.c (nvmet — NVMe-oF target)

Vulnerability analysis

The NVMe-oF target's Identify Namespace List handler accepts a command-set filter (CNS 07h) but never resolves the request's namespace pointer, leaving it NULL. When the filter comparison dereferences that pointer to read the command-set identifier, the kernel oopses as soon as any enabled namespace with an NSID greater than the requested value is found. The fix changes the comparison to use the namespace currently being iterated rather than the uninitialized request pointer, which both avoids the crash and corrects the filtering logic. Any NVMe host that can establish a connection to the target can trigger this; the target must be configured and have at least one enabled namespace, but no special target-side privileges are needed from the attacker.

03

BranchIntroducedFixed inPatch commit
6.186.136.18.4761dc1a37e04d
7.16.137.1.112bc1e33ff6a5
7.26.137.2.1123d664ac98d
mainline6.137.379aba4c94034