CVE Catalog

CVE-2026-97527

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Summary

In the Linux kernel, the fcport->unsol_ctx_head list in the scsi: qla2xxx driver is modified from several contexts without a common lock. Concurrent add and delete operations (or two concurrent deletes) can corrupt the list pointers, since the qpair qp_lock cannot serialize this per-fcport list.

Risk Assessment

A race condition can lead to kernel list corruption, system instability, or a kernel panic, causing denial of service.

Recommendation

Update the Linux kernel to a version containing the fix that introduces a dedicated per-fcport spinlock unsol_ctx_lock around list_add_tail()/list_del() operations on unsol_ctx_head.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock The fcport->unsol_ctx_head list is modified from several contexts without a common lock. Entries are added in qla2xxx_process_purls_iocb() from the response queue ISR (under the qpair qp_lock), while they are removed from qla2xxx_process_purls_pkt() (DPC/purex worker), qla_nvme_xmt_ls_rsp() (NVMe-FC transport callback) and qla_nvme_release_lsrsp_cmd_kref() (SRB completion). The qpair qp_lock cannot serialize this per-fcport list since multiqueue adapters add entries through different qpairs, so a concurrent add and delete (or two concurrent deletes) can corrupt the list pointers. Introduce a dedicated per-fcport spinlock, unsol_ctx_lock, initialized in qla2x00_alloc_fcport(), and take it around every list_add_tail()/list_del() on unsol_ctx_head. The add nests under the existing qp_lock; no delete path takes qp_lock, so the lock order is consistent and deadlock free.

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