GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel nvme-fc: use-after-free when an I/O error requeues ioerr_work during controller deletion

CVSS 9.8CVE-2025-40261Kernel, userspace & hypervisorcurated

Impact

In nvme_fc_delete_ctrl(), cancel_work_sync() runs before nvme_fc_delete_association(), which waits for pending I/O to drain. An I/O error during that drain can requeue ->ioerr_work after the cancellation, so the work item is still live when the nvme_fc_ctrl object is freed - the reported symptom is list_del corruption and a kernel BUG in the workqueue path, taking the host down. The trigger is an NVMe-over-Fibre-Channel controller teardown that races with a fabric error, which is exactly what happens during SAN maintenance, path flapping or array failover. For operators this is a host-availability bug on nodes with FC-attached NVMe storage: the node panics and every job on it dies, and on a GPU node that is an unplanned eviction of whatever was training. There is no tenant-facing attack surface here - reaching it requires control over the storage fabric or the local ability to delete controllers, so treat it as a reliability fix rather than a tenant escape, and skip it entirely on fleets that do not use NVMe-FC.

Who can reach it

Not remotely reachable through tenant workloads. Requires either a fabric-side error condition during controller deletion or local privileged action that deletes an NVMe-FC controller, on a host with NVMe over Fibre Channel configured.

What to do

Take the stable kernel update that moves cancel_work_sync() after nvme_fc_delete_association(), via your distribution or the upstream stable commits. Rolling it out means draining the node and rebooting it to the new kernel. Priority should follow your storage topology: schedule it on FC-attached hosts ahead of SAN maintenance, and leave it to normal kernel cadence elsewhere, since hosts without NVMe-FC never load the affected path.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.