KernelScan.io

HIGH Introduced in 5.15

qla2xxx StatusIOCB Deref

CVE-2026-89849

CVSS 8.8 / 10.0 NVD

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

KernelScan AI7.7HIGH

01

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Reject non-SCSI SRB on status IOCB fast path qla2x00_status_entry() filters out non-TYPE_SRB entries and the SRB_NVME_CMD, SRB_BIDI_CMD and SRB_TM_CMD types, then falls through to a SCSI fast path that assumes the command is an SRB_SCSI_CMD. The first thing on that path, qla_chk_edif_rx_sa_delete_pending(), and the subsequent handling both evaluate GET_CMD_SP(sp), i.e. sp->u.scmd.cmd. The srb u union overlays the SCSI command pointer with other command layouts (bsg_job, iocb_cmd). If firmware delivers an unexpected STATUS_TYPE IOCB for a non-SCSI handle, sp->u.scmd.cmd can read as a non-NULL garbage pointer, bypassing the NULL checks in qla_chk_edif_rx_sa_delete_pending() and at the cp == NULL test, and leading to a wild pointer dereference. Reject any SRB whose type is not SRB_SCSI_CMD before entering the fast path. The outstanding_cmds slot is left untouched so a genuinely non-SCSI command still completes through its proper handler.

02

Engine v0.6.0

Risk summary

A local attacker with access to a QLogic/Marvell Fibre Channel adapter can trigger a type confusion in the qla2xxx driver's status completion handler, potentially leading to kernel memory corruption or a system crash. The vulnerability requires the EDIF encryption-in-flight feature to be enabled and specific FC hardware to be present.

Affecteddrivers/scsi/qla2xxx/qla_isr.c (qla2xxx)

Vulnerability analysis

The qla2xxx Fibre Channel driver processes firmware status completions on a fast path that assumes every matching request is a SCSI command. When the adapter firmware delivers an unexpected status completion for a non-SCSI request (such as a BSG or NVMe-FC command), the driver reads a union field that overlays the SCSI command pointer with a different command type's data, producing a garbage pointer that bypasses NULL checks and gets dereferenced. The fix rejects any request whose type is not a SCSI command before entering the fast path, allowing non-SCSI commands to complete through their proper handlers instead. This requires a Marvell/QLogic Fibre Channel adapter with the EDIF encryption feature enabled and is reachable by a local user with access to the adapter's management interface or potentially by a malicious device on the Fibre Channel fabric.

03

BranchIntroducedFixed inPatch commit
5.155.155.15.2219204fb088837
6.15.156.1.188b7418198b45b
6.125.156.12.110e38041b47c29
6.185.156.18.51e93aa3c5125d
6.65.156.6.1578f0e31e7a413
7.25.157.2.529f1f9ad9e35
mainline5.157.30f41d07d72f2
cip/6.15.156.1.189-cip61b7418198b45b
cip/6.1-rt5.156.1.189-cip61-rt32b7418198b45b
cip/6.125.156.12.111-cip32e38041b47c29

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