CVE-2026-97529

scsi: qla2xxx: Validate BSG request_len before reading vendor_cmd[]

State
Published
Severity
Not scored
Published
Sep 25, 2026
Updated
Oct 30, 2026
Reserved
Sep 24, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

scsi: qla2xxx: Validate BSG request_len before reading vendor_cmd[]

The FC BSG transport allocates job->request via memdup_user() using the exact user-supplied request_len. For FC_BSG_HST_VENDOR, fc_bsg_host_dispatch() only guarantees request_len covers msgcode and vendor_id; it does not account for the vendor_cmd[] flexible array.

qla2xxx then reads the command selector vendor_cmd[0] and, in several sub-handlers, vendor_cmd[1]/[2] or structures overlaid on the vendor command area without verifying request_len. A caller holding CAP_SYS_RAWIO can submit a short request whose vendor_id matches the host, triggering out-of-bounds heap reads (KASAN-detectable, and able to mis-select a command or panic).

Add a central guard in qla2x00_process_vendor_specific() so the selector is always in bounds, restrict the early vendor_cmd[0] read in qla24xx_bsg_request() to sufficiently long vendor messages, and add request_len checks to the sub-handlers that read further: qla24xx_proc_fcp_prio_cfg_cmd(), qla2x00_process_loopback(), qla84xx_reset(), qla84xx_updatefw(), qla2x00_read_optrom(), qla2x00_update_optrom(), qlafx00_mgmt_cmd() and qla28xx_validate_flash_image().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before a0c6842ec825a91693626dbd9a4c54f2b9dc15eaAffected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before 0540676f5fefdff748b8d57a927b143e31dc21fdAffected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before d3762cc777544a4cbc4635a787e1cfc021e1a615Affected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before 5f33efe04658968b6b3f432f904d5f1f74c12286Affected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before ef63922d8bdea03de1804af39a6b12212acb1be2Affected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before 740f3458a4798af54aaf8cf63e797d407e8b6d3bAffected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before f75bff451a2fac5aed82f9641df1e9a42c5a899dAffected
  • 01e0e15c8b3b32e006e5cccac10c8b377ac3d803 to before 4cf38dd9465736141263ebb63375868311a0ec81Affected
LinuxLinux
  • 4.10Affected
  • before 4.10Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.53 through 6.18.*Not affected
  • 7.2.7 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.