Bug 2535391 (CVE-2026-89846) - CVE-2026-89846 kernel: scsi: qla2xxx: Bound rsp_info_len to avoid OOB sense-data read
Summary: CVE-2026-89846 kernel: scsi: qla2xxx: Bound rsp_info_len to avoid OOB sense-d...
Keywords:
Status: NEW
Alias: CVE-2026-89846
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-09-16 12:32 UTC by OSIDB Bzimport
Modified: 2026-10-06 12:01 UTC (History)
17 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:71016 0 None None None 2026-09-23 18:08:50 UTC
Red Hat Product Errata RHSA-2026:71213 0 None None None 2026-09-24 01:02:50 UTC
Red Hat Product Errata RHSA-2026:71232 0 None None None 2026-09-24 05:52:50 UTC
Red Hat Product Errata RHSA-2026:71233 0 None None None 2026-09-24 03:01:13 UTC
Red Hat Product Errata RHSA-2026:74428 0 None None None 2026-10-06 12:01:17 UTC

Description OSIDB Bzimport 2026-09-16 12:32:07 UTC
In the Linux kernel, the following vulnerability has been resolved:

scsi: qla2xxx: Bound rsp_info_len to avoid OOB sense-data read

In qla2x00_status_entry(), the FWI2 status path advances sense_data and
shrinks par_sense_len by rsp_info_len:

	if (IS_FWI2_CAPABLE(ha)) {
		sense_data += rsp_info_len;
		par_sense_len -= rsp_info_len;
	}

rsp_info_len is a 32-bit value taken directly from the target's FCP
response (sf.rsp_data_len), while par_sense_len is the IOCB data area
size (28 bytes for 24xx, 60 bytes for 29xx). A hostile or buggy target
reporting an rsp_info_len larger than par_sense_len makes the unsigned
subtraction underflow to a huge value and advances sense_data out of
bounds.

The underflowed par_sense_len then defeats the cap in
qla2x00_handle_sense():

	if (sense_len > par_sense_len)
		sense_len = par_sense_len;
	memcpy(cp->sense_buffer, sense_data, sense_len);

so the memcpy reads up to SCSI_SENSE_BUFFERSIZE bytes from the
out-of-bounds sense_data pointer, leaking adjacent response-ring/heap
memory into the command's sense buffer.

Clamp rsp_info_len to par_sense_len before the subtraction so
par_sense_len can never underflow and sense_data stays within the IOCB
data area. The fix sits before the comp_status switch, covering both
qla2x00_handle_sense() call sites.

Comment 3 Jon Orris 2026-09-23 18:08:48 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:71016 https://access.redhat.com/errata/RHSA-2026:71016

Comment 4 Jon Orris 2026-09-24 01:02:49 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:71213 https://access.redhat.com/errata/RHSA-2026:71213

Comment 5 Jon Orris 2026-09-24 03:01:11 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:71233 https://access.redhat.com/errata/RHSA-2026:71233

Comment 6 Jon Orris 2026-09-24 05:52:48 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:71232 https://access.redhat.com/errata/RHSA-2026:71232

Comment 8 Jon Orris 2026-10-06 12:01:15 UTC
This issue has been addressed in the following products:

  Red Hat OpenShift Container Platform 4.22

Via RHSA-2026:74428 https://access.redhat.com/errata/RHSA-2026:74428


Note You need to log in before you can comment on or make changes to this bug.