Skip to main content
← All vulnerabilities
CVE-2026-89853

scsi: qla2xxx: Fix FCE trace use-after-free during firmware dump

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 3 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Fix FCE trace use-after-free during firmware dump qla2x00_free_fce_trace() freed and cleared ha->fce while holding only fce_mutex. The firmware-dump consumers qla27xx_fwdt_entry_t264() and qla25xx_copy_fce() read ha->fce (NULL check followed by a copy of the buffer) under hardware_lock and never take fce_mutex. A debugfs FCE disable could therefore free the DMA buffer between a dump's NULL check and its copy, resulting in a use-after-free. Unpublish ha->fce under hardware_lock, then release the lock and free the DMA buffer (dma_free_coherent() may sleep). A concurrent dump either completes its check and copy with the buffer still valid, or observes ha->fce == NULL and skips it.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 3a5a789494875376d1f8063ec5ecc6beafda2ce1 · fixed in 423487f03e325b8665d20a2a3171fe012b1a4fa9; From 73d3d3c66f108bc47922490f8500842530139975 · fixed in 7bd308cd893e8cce023d03a40a2f0adccaff0175; From 57c029cab0d908942e3ed9ff9fd0361144d01944 · fixed in edc464a4fc96e2720d166e7cc7e7a6827b086760; From 217230bc8796a922d5b15a9a94ec4414b2d2b3e3 · fixed in 6003e79148eca73d7cafb076f5be47e234d543d0; From 2cf3c3fe9a11aa168e80c966494c58548b9aed5d · fixed in ef9b89f6c92274c3670403fd06130ca25f685050; From 841df27d619ee1f5ca6473e15227b39d6136562d · fixed in 8e7a26931b6111583cfeaf49c068f26524dc3af2; From 841df27d619ee1f5ca6473e15227b39d6136562d · fixed in 41ef7edde27ac87d55ffc703da44e78aa8c2e896; From 841df27d619ee1f5ca6473e15227b39d6136562d · fixed in 53298efcbbb0f0438366d45cb7ed7e6d93dd5531; From 5.10.235 · fixed in 5.10.270; From 5.15.179 · fixed in 5.15.221; From 6.1.129 · fixed in 6.1.188; From 6.6.78 · fixed in 6.6.157; From 6.12.14 · fixed in 6.12.110; From 6.13.3 · fixed in 6.14

  • Linux Linux

    6.14

  • KernelLinux

    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.14.0 · fixed in 7.2.5

References 8

git.kernel.org