scsi: qla2xxx: Don't query firmware state while chip is down
- 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.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 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: Don't query firmware state while chip is down qla2x00_fw_state_show() initializes rval to QLA_FUNCTION_FAILED and jumps to the out: label when the chip is down or EEH is busy. The out: block then re-issued qla2x00_get_firmware_state() because rval != QLA_SUCCESS, defeating the chip-down/EEH-busy guards and issuing a mailbox command (outside optrom_mutex) during ISP reset or PCI error recovery, which can hang the adapter. It also turned a normal in-lock mailbox failure into a second unsynchronized mailbox attempt. Make the out: fallback only mark the firmware state as unknown. The mailbox is now issued at most once, inside optrom_mutex, and only when the chip is up and not EEH-busy.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in 178d984e8875292582e4295cf559b2b11d3c9325; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in cba780c01f72f8585ca81ad7304097f8b12ef339; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in 22f44f77da496bc355479c08a0a9dbc9ad42ba42; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in b6a30baa29695fa0eaba4a3a04435a3c1a5cb63d; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in 7bc2baed8a3d6a1e2a3f6b78d245f25d1e18a749; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in a194684853dceaa1d6b7a9a02bc12f479232ad9b; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in a6374b508893de15fee78583a95f5099d7812e85; From b6faaaf796d7bfb00e32ca5c905d55cc43e89448 · fixed in e0cebe20dcffbed9c078fe30e2d18cd5046d9eff
- Linux Linux
4.20
- KernelLinux
From 4.20.0 · fixed in 5.10.270; From 5.11.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 8
git.kernel.org
- stable/c/178d984e8875292582e4295cf559b2b11d3c9325
- stable/c/cba780c01f72f8585ca81ad7304097f8b12ef339
- stable/c/22f44f77da496bc355479c08a0a9dbc9ad42ba42
- stable/c/b6a30baa29695fa0eaba4a3a04435a3c1a5cb63d
- stable/c/7bc2baed8a3d6a1e2a3f6b78d245f25d1e18a749
- stable/c/a194684853dceaa1d6b7a9a02bc12f479232ad9b
- stable/c/a6374b508893de15fee78583a95f5099d7812e85
- stable/c/e0cebe20dcffbed9c078fe30e2d18cd5046d9eff