CVE-2026-97536 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: qla2xxx : Correction d'un use-after-free sur qpair lors de l'arrêt du queue (queue teardown)
Le gestionnaire MSI-X de file de réponse qla2xxx_msix_rsp_q() programme qla_do_work() via queue_work(ha->wq, &qpair->q_work). qla_do_work() déréférence le qpair (vha, rsp) et acquiert qpair->qp_lock.
Lors du teardown, qla2xxx_delete_qpair() supprime la file de réponse, ce qui appelle free_irq() dans qla25xx_free_rsp_que(), puis libère la mémoire de la file et celle du qpair. free_irq() attend que les gestionnaires hardirq en cours s'exécutent, mais n'annule pas le travail déjà placé sur ha->wq. Un élément q_work encore en attente exécute alors qla_do_work() contre un qpair et une file de réponse déjà libérés (freed), provoquant un use-after-free. Cela est particulièrement probable lors d'un teardown complet de l'adaptateur, où destroy_workqueue(ha->wq) force l'exécution des travaux en attente après que les files paires ont été libérées.
Il faut vider l'élément de travail avec cancel_work_sync() dans qla25xx_free_rsp_que() une fois que free_irq() a libéré l'interruption (afin qu'aucun nouveau travail ne puisse être mis en file d'attente) et avant la libération de la mémoire de la file de réponse et du qpair (afin que le gestionnaire vidé voie toujours une mémoire valide). Une garde sur rsp->qpair et ha->wq est ajoutée pour correspondre à la condition INIT_WORK() et éviter toute opération sur un work_struct non initialisé.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.