Katalog CVE

CVE-2026-97527

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux lista fcport->unsol_ctx_head w sterowniku scsi: qla2xxx jest modyfikowana z wielu kontekstów bez wspólnej blokady. Równoczesne dodawanie i usuwanie wpisów (lub dwa równoczesne usunięcia) może uszkodzić wskaźniki listy, ponieważ blokada qpair qp_lock nie serializuje tej listy na poziomie fcport.

Ocena ryzyka

Sytuacja wyścigu (race condition) może prowadzić do uszkodzenia listy jądra, niestabilności systemu lub paniki jądra, powodując odmowę usługi.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę wprowadzającą dedykowaną blokadę spinlock unsol_ctx_lock na poziomie fcport wokół operacji list_add_tail()/list_del() na unsol_ctx_head.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS