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.15 | 3.14 | 5.15.221 | 1d8bbc4344b9 |
| 6.1 | 3.14 | 6.1.188 | 2c3b17ee53f0 |
| 6.6 | 3.14 | 6.6.157 | ae09260be745 |
| 6.12 | 3.14 | 6.12.110 | fcf0804dfe05 |
| 7.2 | 3.14 | 7.2.5 | 122bf170c94a |
| mainline | 3.14 | 7.3-rc1 | 33d102102d92 |
| 6.18 | 3.14 | 6.18.51 | 8286a9095fb5 |
| 5.10 | 3.14 | 5.10.270 | 8c1ebcade6aa |
| cip/6.12 | 3.14 | 6.12.111-cip32 | fcf0804dfe05 |