KernelScan.io

HIGH

qla2xxx FceTrace UAF

CVE-2026-89853

CVSS 7.0 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

01

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.

02

Engine v0.6.0

Risk summary

A local user with access to qla2xxx debugfs can race a firmware dump against FCE trace disable, freeing a DMA buffer mid-copy and causing use-after-free memory corruption. The bug requires a QLogic Fibre Channel HBA and debugfs mounted, limiting exposure to systems with the hardware and debugfs mounted.

Affecteddrivers/scsi/qla2xxx/qla_init.c (qla2xxx SCSI driver)

Vulnerability analysis

A race condition in the qla2xxx Fibre Channel driver allows a use-after-free when a debugfs operation disables FCE tracing concurrently with a firmware dump. The cleanup path freed the FCE DMA buffer under a mutex that the dump path never acquires, so the dump could read a freed buffer between its NULL check and copy. The fix unpublishes the buffer pointer under the same spinlock the dump path uses, then frees the buffer after releasing the lock, ensuring a concurrent dump either completes safely or skips the buffer. The vulnerable path is reachable locally via debugfs on systems with a QLogic HBA, requiring no special capabilities beyond debugfs access.

03

BranchIntroducedFixed inPatch commit
5.105.10.2355.10.270423487f03e32
5.155.15.1795.15.2217bd308cd893e
6.16.1.1296.1.188edc464a4fc96
6.126.12.146.12.110ef9b89f6c922
6.136.13.36.148e7a26931b61
6.18—6.18.5141ef7edde27a
6.66.6.786.6.1576003e79148ec
7.2—7.2.553298efcbbb0
mainline—7.3—
cip/5.10—5.10.271-cip78423487f03e32
cip/6.1—6.1.189-cip61edc464a4fc96
cip/6.1-rt—6.1.189-cip61-rt32edc464a4fc96
cip/6.12—6.12.111-cip32ef9b89f6c922

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)