CVE Catalog

CVE-2026-89972

CriticalCVSS 9.8
Published: Updated: Translated: NVD NIST

Summary

In the Linux kernel, the nvme_alloc_ns() error path removes the namespace from the sibling list using list_del_rcu() but does not wait for SRCU readers before freeing the namespace struct. A concurrent reader in the multipath code may still hold a reference to ns when kfree(ns) runs, leading to a use-after-free.

Risk Assessment

This can lead to kernel memory corruption or system panic, especially in NVMe multipath configurations. Environments with multiple paths to the same device have increased exposure.

Recommendation

Update the Linux kernel to a version containing the fix that adds synchronize_srcu() in the nvme_alloc_ns() error path. If updating is not possible, consider limiting NVMe multipath configurations.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: nvme: add missing SRCU grace period in error path nvme_alloc_ns() error path at out_unlink_ns removes ns from the namespace head siblings list with list_del_rcu(&ns->siblings) but does not wait for SRCU readers before freeing the namespace struct. Multipath code iterates the head->list under srcu_read_lock() in nvme_find_path() and nvme_mpath_revalidate_paths(), so a concurrent reader can still hold a reference to ns when kfree(ns) runs. The normal removal path in nvme_ns_remove() correctly calls synchronize_srcu(&ns->head->srcu) after list_del_rcu() to wait for in-progress readers. Add the same grace period in the error path.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS