Description
In the Linux kernel, the following vulnerability has been resolved:

nvmet: copy the hostid into the ctrl before creating PR pc_refs

Commit 6202783184bf ("nvmet: Improve nvmet_alloc_ctrl() interface and
implementation") added a second uuid_copy() of args->hostid near the end
of nvmet_alloc_ctrl(), and commit 7b658153f1b8 ("nvmet: Remove duplicate
uuid_copy") removed the original copy that sat before
nvmet_ctrl_init_pr() instead of the new one.

Since then nvmet_ctrl_init_pr() snapshots ctrl->hostid into the
per-controller per-namespace reservation refs while the uuid_copy()
from the connect data runs later, after the controller is published.
The ctrl is allocated with kzalloc(), so every pc_ref created on this
path stores the nil UUID.

pc_ref->hostid has a single consumer: nvmet_pr_set_ctrl_to_abort()
matches it against the preempted registrant's hostid to kill and drain
the victim's in-flight I/O for Preempt and Abort. The match can never
hit with the nil UUID, so whenever a namespace with reservations
enabled exists before a host connects, which includes every reconnect,
Preempt and Abort silently degrades into a plain Preempt: the
preempting host sees success while the victim's in-flight I/O is still
in the air.

Copy the hostid where the rest of the connect data is consumed, before
the controller is published and before nvmet_ctrl_init_pr() takes its
snapshot.
Published: 2026-10-18
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Service Degradation / Availability
Action: Assess Impact
AI Analysis

Impact

The kernel NVMe target contains a flaw where the host identifier is only copied after controller allocation, causing all per‑namespace reservation reference entries to receive a nil UUID. The abort logic relies on this UUID to match the host performing a preempt or abort request; the nil value never matches, so abort or preempt operations silently fail, leaving a victim host’s in‑flight I/O in the system. This reduces reliability of the abort feature and can lead to data consistency issues and unrecovered I/O on storage clients. No immediate code execution or data exfiltration is possible, and the impact is limited to service degradation and potential integrity problems for NVMe workloads. The CVSS score is 5.9, indicating a medium severity vulnerability associated with CWE‑908.

Affected Systems

All Linux kernel releases that contain the nvmet target code before the upstream patch commit (6202783…) are affected. The advisory lists the vendor as Linux and the product as Linux kernel, but no specific version numbers are provided. Consequently any kernel incorporating the buggy sequence of hostid copying before the controller is published is potentially vulnerable.

Risk and Exploitability

Based on the description, it is inferred that an attacker needs only normal client access to an NVMe namespace with reservation support enabled. The exploit does not require elevated privileges or special configuration, and it does not provide access to code execution or data exfiltration. EPSS data is < 1% and the vulnerability is not a CISA KEV item, indicating limited public awareness. The CVSS score is 5.9, and the described functional loss is an availability risk: preempt or abort requests report success while the victim’s I/O continues to process, which can lead to silent failures and data inconsistency.

Generated by OpenCVE AI on October 23, 2026 at 07:41 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a release that includes the upstream patch or apply the kernel patch to copy the hostid before reservation refs are created.
  • If a kernel upgrade is not possible, disable NVMe reservation support on affected namespaces to eliminate the aborted path that is vulnerable.
  • Monitor abort and preempt operations for silent failures (e.g., check that I/O is not drained after a reported success) and apply the patch or disable reservations if such failures occur.

Generated by OpenCVE AI on October 23, 2026 at 07:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 06:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-908
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L'}

threat_severity

Moderate


Sun, 18 Oct 2026 23:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nvmet: copy the hostid into the ctrl before creating PR pc_refs Commit 6202783184bf ("nvmet: Improve nvmet_alloc_ctrl() interface and implementation") added a second uuid_copy() of args->hostid near the end of nvmet_alloc_ctrl(), and commit 7b658153f1b8 ("nvmet: Remove duplicate uuid_copy") removed the original copy that sat before nvmet_ctrl_init_pr() instead of the new one. Since then nvmet_ctrl_init_pr() snapshots ctrl->hostid into the per-controller per-namespace reservation refs while the uuid_copy() from the connect data runs later, after the controller is published. The ctrl is allocated with kzalloc(), so every pc_ref created on this path stores the nil UUID. pc_ref->hostid has a single consumer: nvmet_pr_set_ctrl_to_abort() matches it against the preempted registrant's hostid to kill and drain the victim's in-flight I/O for Preempt and Abort. The match can never hit with the nil UUID, so whenever a namespace with reservations enabled exists before a host connects, which includes every reconnect, Preempt and Abort silently degrades into a plain Preempt: the preempting host sees success while the victim's in-flight I/O is still in the air. Copy the hostid where the rest of the connect data is consumed, before the controller is published and before nvmet_ctrl_init_pr() takes its snapshot.
Title nvmet: copy the hostid into the ctrl before creating PR pc_refs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:24:33.989Z

Reserved: 2026-09-25T10:25:14.366Z

Link: CVE-2026-98723

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:25.917

Modified: 2026-10-19T10:19:36.500

Link: CVE-2026-98723

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98723 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T07:45:17Z

Weaknesses
  • CWE-908

    Use of Uninitialized Resource