CVE-2026-97409: nvme-fc: Do not cancel requests in io target before it is initialized

Published Sep 24, 2026
·
Updated

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

nvme-fc: Do not cancel requests in io target before it is initialized

A new nvme-fc controller in CONNECTING state sees admin request timeout schedules ctrl->ioerrwork to abort inflight requests. This ends up calling nvmefcabortoutstandingios() which aborts requests in both admin and io tagsets. In case fcctrl->tagset was not initialized we see the warning below. This is because ctrl.queuecount is initialized early in nvmefcallocctrl().

nvme nvme0: NVME-FC{0}: starting error recovery Connectivity Loss INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe lpfc 0000:ab:00.0: queue 0 connect admin queue failed (-6). you didn't initialize this object before use? turning off the locking correctness validator. Workqueue: nvme-reset-wq nvmefcctrlioerrwork [nvmefc] Call Trace: <TASK> dumpstacklvl+0x57/0x80 registerlockclass+0x567/0x580 lockacquire+0x330/0xb90 lockacquire.part.0+0xad/0x210 blkmqtagsetbusyiter+0xf9/0xc00 nvmefcabortoutstandingios+0x23f/0x320 [nvmefc] nvmefcctrlioerrwork+0x172/0x210 [nvmefc] processonework+0x82c/0x1450 workerthread+0x5ee/0xfd0 kthread+0x3a0/0x750 retfromfork+0x439/0x670 retfromforkasm+0x1a/0x30 </TASK>

Update the check in nvmefcabortoutstandingios() confirm that io tagset was created before iterating over busy requests. Also make sure to cancel ctrl->ioerrwork before removing io tagset.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In nvme-fc, do not cancel requests in the I/O target before it is initialized; ensure the I/O tagset is initialized before iterating over busy requests, and cancel ctrl->ioerr_work before removing the I/O tagset.

Event History

Sep 24, 2026
CVE Published
via MITRE·04:03 PM
Data Sourced
via MITRE·04:03 PM
Description
Data Sourced
via NVD·05:17 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems using the Linux kernel NVMe over Fibre Channel (nvme-fc) driver can encounter it during creation of a new NVMe-FC controller. The described path involves a controller still in CONNECTING state whose admin request times out before the I/O tag set is initialized.

2

What conditions trigger the problem?

An admin-queue connection failure or timeout can schedule controller error recovery. That recovery attempts to abort outstanding requests in both the admin and I/O tag sets, including the uninitialized I/O tag set.

3

How can I recognize that this issue has occurred?

Kernel logs may show NVME-FC connectivity-loss error recovery and a lockdep warning about registering a non-static key or using an object before initialization. The stack trace includes nvme_fc_ctrl_ioerr_work and __nvme_fc_abort_outstanding_ios.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203