HIGH Introduced in 3.14
qla2xxx cs84xx UAF
CVE-2026-89854
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI6.9MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Fix cs84xx use-after-free on host teardown qla84xx_put_chip() drops the last reference to ha->cs84xx and frees it via __qla84xx_chip_release() without clearing ha->cs84xx. During teardown it ran before scsi_remove_host(), which is what removes the 84xx_fw_version host sysfs attribute. A concurrent read of that attribute in the window between the two calls executes qla24xx_84xx_fw_version_show(), which dereferences the freed ha->cs84xx, resulting in a use-after-free. Move qla84xx_put_chip() to after scsi_remove_host() in both qla2x00_remove_one() and qla2x00_disable_board_on_pci_error(). Once scsi_remove_host() returns, the sysfs attribute is gone and kernfs has drained any in-flight show(), so no reader can touch cs84xx; the put still runs before the host and ha are freed.
02KernelScan AI Analysis
Risk summary
A local unprivileged user on a system with a QLogic Fibre Channel HBA can trigger a use-after-free by reading a sysfs attribute during device teardown. The race window opens when the driver frees chip-specific data before removing the corresponding sysfs entry, allowing a concurrent reader to dereference freed memory. Successful exploitation could lead to kernel memory corruption, privilege escalation, or a system crash.
Vulnerability analysis
During host teardown, the qla2xxx driver frees a chip-specific data structure before removing the associated sysfs attribute. In the window between the free and the attribute removal, a concurrent read of that sysfs attribute dereferences the already-freed memory, causing a use-after-free. The fix reorders the teardown sequence so the sysfs attribute is removed and all in-flight readers are drained before the data structure is freed. The vulnerability is reachable by any local user who can read the world-accessible sysfs attribute on a system with a QLogic Fibre Channel HBA, but exploitation requires winning a race with device removal or PCI error handling, which limits the attack window.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 5.10 | 3.14 | 5.10.270 | 8c1ebcade6aa |
| 5.15 | 3.14 | 5.15.221 | 1d8bbc4344b9 |
| 6.1 | 3.14 | 6.1.188 | 2c3b17ee53f0 |
| 6.12 | 3.14 | 6.12.110 | fcf0804dfe05 |
| 6.18 | 3.14 | 6.18.51 | 8286a9095fb5 |
| 6.6 | 3.14 | 6.6.157 | ae09260be745 |
| 7.2 | 3.14 | 7.2.5 | 122bf170c94a |
| mainline | 3.14 | 7.3 | 33d102102d92 |
| cip/5.10 | 3.14 | 5.10.271-cip78 | 8c1ebcade6aa |
| cip/6.1 | 3.14 | 6.1.189-cip61 | 2c3b17ee53f0 |
| cip/6.1-rt | 3.14 | 6.1.189-cip61-rt32 | 2c3b17ee53f0 |
| cip/6.12 | 3.14 | 6.12.111-cip32 | fcf0804dfe05 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.111-cip32 |
| cip/6.1 | Fixed in 6.1.189-cip61 |
| cip/6.1-rt | Fixed in 6.1.189-cip61-rt32 |
| cip/5.10 | Fixed in 5.10.271-cip78 |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |
| cip/4.19 | Affected — no CIP fix yet (latest 4.19.325-cip136) |
| cip/4.19-rt | Affected — no CIP fix yet (latest 4.19.325-cip136-rt50) |
| cip/4.4 | Affected — no CIP fix yet (latest 4.4.302-cip115) |
| cip/4.4-rt | Affected — no CIP fix yet (latest 4.4.302-cip115-rt63) |