KernelScan.io

CRITICAL

scsi/qla2xxx Fcport DoubleFree

CVE-2026-43414

CVSS 9.8 / 10.0 NVD

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

KernelScan AI5.0MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Completely fix fcport double free In qla24xx_els_dcmd_iocb() sp->free is set to qla2x00_els_dcmd_sp_free(). When an error happens, this function is called by qla2x00_sp_release(), when kref_put() releases the first and the last reference. qla2x00_els_dcmd_sp_free() frees fcport by calling qla2x00_free_fcport(). Doing it one more time after kref_put() is a bad idea.

02

Engine v0.2.0

Risk summary

Systems equipped with QLogic Fibre Channel HBAs are vulnerable to kernel memory corruption and potential crashes when ELS DCMD operations fail. The double free of fcport structures in error handling paths can corrupt kernel heap metadata. Exploitation requires local privileged access to trigger the vulnerable driver state.

Affecteddrivers/scsi/qla2xxx/qla_iocb.c (QLogic Fibre Channel driver)

Vulnerability analysis

The vulnerability exists in qla24xx_els_dcmd_iocb() where the fcport structure is freed twice during error handling. The function pointer sp->free is set to qla2x00_els_dcmd_sp_free(), which already invokes qla2x00_free_fcport() when the kref drops to zero. The erroneous code then calls qla2x00_free_fcport(fcport) again in the error paths after kref_put(), resulting in a double free. The fix removes the redundant qla2x00_free_fcport() calls so that the reference counting mechanism alone governs the object lifetime.

03

BranchFixed inPatch commit
5.165.16d48ea85463f5
6.196.19.9
6.26.2c0b7da13a04b
6.76.7
6.86.8
6.96.9
mainline7.0