Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-97535

scsi: qla2xxx: Bound VP index against VP_CTRL IOCB bitmap size

Description

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Bound VP index against VP_CTRL IOCB bitmap size The VP control IOCB selects its target virtual port by setting one bit in vp_idx_map, a fixed 16-byte (128-bit) array in both vp_ctrl_entry_24xx and vp_ctrl_entry_24xx_ext. qla25xx_ctrlvp_iocb() computes map = (vp_index - 1) / 8 and writes vce->vp_idx_map[map] without checking that map stays within the array. max_npiv_vports is taken from firmware and only sanitized to a MIN_MULTI_ID_FABRIC-aligned boundary, so it can legitimately be 191 or 255, and qla24xx_control_vp() only rejects vp_index >= max_npiv_vports. A vp_index above 128 therefore yields map >= 16 and an out-of-bounds write of up to 16 bytes past vp_idx_map, corrupting the trailing IOCB fields (or the adjacent request-ring slot on the 64-byte layout). Reject a vp_index that cannot be represented in the IOCB bitmap in qla24xx_control_vp(), and add a defensive ARRAY_SIZE() guard in qla25xx_ctrlvp_iocb() before the write. Adapters that report the usual 63 or 127 NPIV vports are unaffected.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 2853192e154b813fe34a6cbee5e34dfef50d29d0 to < 674d783f2e80d0d7c1c86bf36dc0a09033e704deaffected
  • 2853192e154b813fe34a6cbee5e34dfef50d29d0 to < c80a0362a0fe548c15a0324b1f61c04b62bb2174affected
  • 2853192e154b813fe34a6cbee5e34dfef50d29d0 to < 48a44e19746eaa70320a3c2571dcb345192fca72affected
  • 2853192e154b813fe34a6cbee5e34dfef50d29d0 to < 13354ad251ab009102597a791bc7c4d2265229e1affected
  • 2853192e154b813fe34a6cbee5e34dfef50d29d0 to < 878613ecb5a36db26859c4fd83daf9283a334fa2affected

Linux Linux

Default version status: affected

  • 4.16affected
  • 0 to < 4.16unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 6.12.112 to ≤ 6.12.*unaffected
  • 6.18.53 to ≤ 6.18.*unaffected
  • 7.2.7 to ≤ 7.2.*unaffected
  • 7.3 to ≤ *unaffected

References