CVE-2026-80813: nvmet: fix NULL pointer dereference in nvmet_execute_identify_nslist()
In the Linux kernel, the following vulnerability has been resolved:
nvmet: fix NULL pointer dereference in nvmetexecuteidentifynslist()
When a host issues an Identify command with CNS 07h (Active Namespace ID List for a specific I/O Command Set), nvmetexecuteidentifynslist() is called with matchcss set. The command-set filter dereferences req->ns, but this handler never calls nvmetreqfindns(), so req->ns is always NULL (nvmetreqinit() 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.
Affected Software
Event History
Frequently Asked Questions
Who is exposed to this issue?
Systems using the Linux kernel NVMe target subsystem are exposed when a host can issue an Identify command using CNS 07h for an Active Namespace ID List scoped to a specific I/O Command Set. The crash condition also requires an enabled namespace with an NSID greater than the requested value.
What can an attacker or connected host do?
A host that can send the affected Identify command can trigger a NULL-pointer dereference and kernel oops, causing a denial of service. The affected handler has req->ns set to NULL because it does not call nvmet_req_find_ns().
How can I determine whether the vulnerable path has been triggered?
Look for a kernel oops associated with nvmet_execute_identify_nslist() after processing an Identify command with CNS 07h. The condition is reached while iterating enabled namespaces whose NSID is greater than the requested value.