All vulnerabilities
CVE-2026-98723

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

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.20%Chance of exploitation activity in the next 30 days, higher than 9% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in23194531595c5d1d4454e3a607b0c8fc0c4e8695Also 5211fed41d7ec90e9ab7239dc4bffffe4d0b2b62CVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 23194531595c5d1d4454e3a607b0c8fc0c4e8695LinuxCVE List
  • 5211fed41d7ec90e9ab7239dc4bffffe4d0b2b62LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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.

Text from CVE List

Affected versions 8

  • Linuxaffected: 7b658153f1b8a79ed98980f2fef7b92a66aeb9cd before d3d6d7efdacc08616d23b3ac42272a494951dc0fCVE List
  • Linuxaffected: 7b658153f1b8a79ed98980f2fef7b92a66aeb9cd before 23194531595c5d1d4454e3a607b0c8fc0c4e8695CVE List
  • Linuxaffected: 7b658153f1b8a79ed98980f2fef7b92a66aeb9cd before 5211fed41d7ec90e9ab7239dc4bffffe4d0b2b62CVE List
  • Linuxaffected: 6.15CVE List
  • Linuxunaffected: all versions before 6.15CVE List
  • Linuxunaffected: 6.18.56 through 6.18.*CVE List
  • Linuxunaffected: 7.2.10 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3