CVE-2026-89864

scsi: qla2xxx: Bound i2c->length in I2C bsg handlers

State
Published
Severity
Not scored
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

scsi: qla2xxx: Bound i2c->length in I2C bsg handlers

struct qla_i2c_access carries a 16-bit length field alongside a fixed 64-byte buffer:

struct qla_i2c_access { uint16_t device, offset, option, length; uint8_t buffer[0x40]; } __packed;

qla2x00_write_i2c() and qla2x00_read_i2c() use the user-supplied i2c->length without any bounds check. i2c is overlaid on a 256-byte on-stack buffer and sfp is a 256-byte DMA-pool buffer, so a length up to 65535 overruns both:

- write: memcpy(sfp, i2c->buffer, i2c->length) over-reads the stack and over-writes the sfp heap buffer, and qla2x00_write_sfp() then DMAs i2c->length bytes out of the 256-byte buffer. - read: qla2x00_read_sfp() DMAs i2c->length bytes into the 256-byte sfp, then memcpy(i2c->buffer, sfp, i2c->length) overflows the 64-byte buffer inside the on-stack array.

A caller holding CAP_SYS_RAWIO can use this to corrupt the heap and the kernel stack. Reject requests whose length exceeds the buffer before any copy or DMA transfer in both handlers.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 8f01f886cc5e7bbc16cbf1a9928fdebbc911e973Affected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 2be39946abcde5a6416fb074ef728429e246a996Affected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 522d6dcdc645d8f97d6b4cdfd6d8eea307f3ff0eAffected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 9a756f277eb89f769dbf380f38245c270d31fdb5Affected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 32d6df14fdab71fe1ba304fd9a0db0411ea2e043Affected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 97ca58b0fb026799b99e3d552d5f69cf9a3113adAffected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 47049fdadc0eaa115e813735b827e1379c0d2cf8Affected
  • 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae to before 0918ee2c0eeb4d7f45b82b3dc11e65c2d9b7ad59Affected
LinuxLinux
  • 3.7Affected
  • before 3.7Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.51 through 6.18.*Not affected
  • 7.2.5 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.