scsi: qla2xxx: Fix response queue over-consumption in __qla_consume_iocb()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Fix response queue over-consumption in __qla_consume_iocb() qla24xx_process_response_queue() advances ring_ptr past the head IOCB before dispatching, so by the time __qla_consume_iocb() runs, ring_ptr already points at the first continuation IOCB. The function however looped purex->entry_count times starting at ring_ptr. As entry_count includes the head, this consumed one entry too many: it stamped RESPONSE_PROCESSED on the next, unrelated IOCB and advanced the ring past it, silently dropping a legitimate firmware response. The head IOCB's signature was also never marked. Mark the head processed and account for it, then consume only the entry_count - 1 continuation IOCBs, matching __qla_copy_purex_to_buffer().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in a136c311676fd1010b1bde3bcfd410caa2fa040f; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in d841707fafba5f80341b82e8c3a4c24fc5aa5132; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in 6e3f129538c32d0019437197735912308c161843; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in bd1534d4afab47f13dfc27fff6f59dd859a0ac3a; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in 31715d1e1cbf3a37ce3452635c5602f73fd7abd4; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in df86c27cf1ba9d66f737a1fa56479c6e7efafe4e; From fac2807946c10b9a509b9c348afd442fa823c5f7 · fixed in 3ba019bdd89d931499d9476456b5d9c7ab7fa753
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5
References 7
git.kernel.org
- stable/c/a136c311676fd1010b1bde3bcfd410caa2fa040f
- stable/c/d841707fafba5f80341b82e8c3a4c24fc5aa5132
- stable/c/6e3f129538c32d0019437197735912308c161843
- stable/c/bd1534d4afab47f13dfc27fff6f59dd859a0ac3a
- stable/c/31715d1e1cbf3a37ce3452635c5602f73fd7abd4
- stable/c/df86c27cf1ba9d66f737a1fa56479c6e7efafe4e
- stable/c/3ba019bdd89d931499d9476456b5d9c7ab7fa753