CVE-2026-89848: scsi: qla2xxx: Quiesce response IRQ before freeing request queue

Published Sep 16, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

scsi: qla2xxx: Quiesce response IRQ before freeing request queue

qla2xxxdeleteqpair() deletes the request queue before the response queue. qla25xxdeletereqque() frees the request queue memory (kfree(req) in qla25xxfreereqque()), but the response-queue MSI-X is only released later, in qla25xxfreerspque(). In that window the response interrupt can still fire, qla2xxxmsixrspq() queues qpair->qwork, and qladowork() -> qla24xxprocessresponsequeue() dereferences the now-freed rsp->req (LOGINOUT/CT/ELS entries and the status path), a use-after-free.

The cancelworksync() added for the qpair teardown lives in the response free path, which runs after the request queue is already freed, so it does not protect rsp->req.

Release the response-queue interrupt and flush qpair->qwork before deleting the request queue, so no late completion can reach the freed request queue. Clearing haveirq makes the subsequent qla25xxfreerspque() skip its freeirq(), and the firmware queue-delete order (request then response) is preserved; the request-delete mailbox completes on the default vector and is unaffected by dropping the qpair response interrupt early.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 16, 2026
CVE Published
via MITRE·10:31 AM
Data Sourced
via MITRE·10:31 AM
Description

Frequently Asked Questions

1

When does the use-after-free occur?

It occurs if a response-queue MSI-X interrupt fires after the request queue has been freed but before the response queue interrupt is released. The interrupt can queue qpair work that later dereferences the freed request queue through rsp->req.

2

What conditions are needed to trigger the issue?

The affected qpair must be undergoing teardown, and a late response completion interrupt must arrive in the interval between request-queue deletion and response-queue interrupt release. The provided information does not describe an external attacker-controlled trigger.

3

What does the fix change?

The fix releases the response-queue interrupt and flushes qpair work before deleting the request queue. It preserves the firmware queue-delete order while preventing late response processing from accessing the freed queue.

4

Are affected kernel versions or a configuration workaround identified?

No affected version range, default-configuration status, or temporary workaround is provided. The supplied stable kernel references identify commits containing the resolution.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203