scsi: qla2xxx: Delay module unload while fabric scan in progress
- 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.251, 5.15.201, 6.1.164, 6.6.125, 6.12.72, 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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Delay module unload while fabric scan in progress System crash seen during load/unload test in a loop. [105954.384919] RBP: ffff914589838dc0 R08: 0000000000000000 R09: 0000000000000086 [105954.384920] R10: 000000000000000f R11: ffffa31240904be5 R12: ffff914605f868e0 [105954.384921] R13: ffff914605f86910 R14: 0000000000008010 R15: 00000000ddb7c000 [105954.384923] FS: 0000000000000000(0000) GS:ffff9163fec40000(0000) knlGS:0000000000000000 [105954.384925] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [105954.384926] CR2: 000055d31ce1d6a0 CR3: 0000000119f5e001 CR4: 0000000000770ee0 [105954.384928] PKRU: 55555554 [105954.384929] Call Trace: [105954.384931] <IRQ> [105954.384934] qla24xx_sp_unmap+0x1f3/0x2a0 [qla2xxx] [105954.384962] ? qla_async_scan_sp_done+0x114/0x1f0 [qla2xxx] [105954.384980] ? qla24xx_els_ct_entry+0x4de/0x760 [qla2xxx] [105954.384999] ? __wake_up_common+0x80/0x190 [105954.385004] ? qla24xx_process_response_queue+0xc2/0xaa0 [qla2xxx] [105954.385023] ? qla24xx_msix_rsp_q+0x44/0xb0 [qla2xxx] [105954.385040] ? __handle_irq_event_percpu+0x3d/0x190 [105954.385044] ? handle_irq_event+0x58/0xb0 [105954.385046] ? handle_edge_irq+0x93/0x240 [105954.385050] ? __common_interrupt+0x41/0xa0 [105954.385055] ? common_interrupt+0x3e/0xa0 [105954.385060] ? asm_common_interrupt+0x22/0x40 The root cause of this was that there was a free (dma_free_attrs) in the interrupt context. There was a device discovery/fabric scan in progress. A module unload was issued which set the UNLOADING flag. As part of the discovery, after receiving an interrupt a work queue was scheduled (which involved a work to be queued). Since the UNLOADING flag is set, the work item was not allocated and the mapped memory had to be freed. The free occurred in interrupt context leading to system crash. Delay the driver unload until the fabric scan is complete to avoid the crash.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in d8af012f92eee021c6ebb7093e65813c926c336b; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in 891f9969a29e9767a453cef4811c8d2472ccab49; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in 984dc1a51bf6fc3ca4e726abe790ec38952935d8; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in 528b2f1027edfb52af0171f0f4b227fb356dde05; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in d70f71d4c92bcb8b6a21ac62d4ea3e87721f4f32; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in c068ebbaf52820d6bdefb9b405a1e426663c635a; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in 7062eb0c488f35730334daad9495d9265c574853; From 783e0dc4f66ade6bbd8833b6bae778158d54c1a6 · fixed in 8890bf450e0b6b283f48ac619fca5ac2f14ddd62
- Linux Linux
4.8
- KernelLinux
From 4.8.0 · fixed in 5.10.251; From 5.11.0 · fixed in 5.15.201; From 5.16.0 · fixed in 6.1.164; From 6.2.0 · fixed in 6.6.125; From 6.7.0 · fixed in 6.12.72; From 6.13.0 · fixed in 6.18.11; From 6.19.0 · fixed in 6.19.1
References 8
git.kernel.org
- stable/c/d8af012f92eee021c6ebb7093e65813c926c336b
- stable/c/891f9969a29e9767a453cef4811c8d2472ccab49
- stable/c/984dc1a51bf6fc3ca4e726abe790ec38952935d8
- stable/c/528b2f1027edfb52af0171f0f4b227fb356dde05
- stable/c/d70f71d4c92bcb8b6a21ac62d4ea3e87721f4f32
- stable/c/c068ebbaf52820d6bdefb9b405a1e426663c635a
- stable/c/7062eb0c488f35730334daad9495d9265c574853
- stable/c/8890bf450e0b6b283f48ac619fca5ac2f14ddd62