CVE-2026-89864 (GCVE-0-2026-89864)
Vulnerability from cvelistv5
Published
2026-09-16 10:31
Modified
2026-10-19 08:53
Severity ?
Summary
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.
Impacted products
Vendor Product Version
Linux Linux Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Version: 9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/qla2xxx/qla_bsg.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8f01f886cc5e7bbc16cbf1a9928fdebbc911e973",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "2be39946abcde5a6416fb074ef728429e246a996",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "522d6dcdc645d8f97d6b4cdfd6d8eea307f3ff0e",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "9a756f277eb89f769dbf380f38245c270d31fdb5",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "32d6df14fdab71fe1ba304fd9a0db0411ea2e043",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "97ca58b0fb026799b99e3d552d5f69cf9a3113ad",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "47049fdadc0eaa115e813735b827e1379c0d2cf8",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            },
            {
              "lessThan": "0918ee2c0eeb4d7f45b82b3dc11e65c2d9b7ad59",
              "status": "affected",
              "version": "9ebb5d9c69f1f5721f9f6f49e501c674c1e184ae",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/qla2xxx/qla_bsg.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.7"
            },
            {
              "lessThan": "3.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.51",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.51",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.5",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: qla2xxx: Bound i2c-\u003elength in I2C bsg handlers\n\nstruct qla_i2c_access carries a 16-bit length field alongside a fixed\n64-byte buffer:\n\n\tstruct qla_i2c_access {\n\t\tuint16_t device, offset, option, length;\n\t\tuint8_t  buffer[0x40];\n\t} __packed;\n\nqla2x00_write_i2c() and qla2x00_read_i2c() use the user-supplied\ni2c-\u003elength without any bounds check. i2c is overlaid on a 256-byte\non-stack buffer and sfp is a 256-byte DMA-pool buffer, so a length up to\n65535 overruns both:\n\n  - write: memcpy(sfp, i2c-\u003ebuffer, i2c-\u003elength) over-reads the stack and\n    over-writes the sfp heap buffer, and qla2x00_write_sfp() then DMAs\n    i2c-\u003elength bytes out of the 256-byte buffer.\n  - read: qla2x00_read_sfp() DMAs i2c-\u003elength bytes into the 256-byte sfp,\n    then memcpy(i2c-\u003ebuffer, sfp, i2c-\u003elength) overflows the 64-byte\n    buffer inside the on-stack array.\n\nA caller holding CAP_SYS_RAWIO can use this to corrupt the heap and the\nkernel stack. Reject requests whose length exceeds the buffer before any\ncopy or DMA transfer in both handlers."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T08:53:57.594Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8f01f886cc5e7bbc16cbf1a9928fdebbc911e973"
        },
        {
          "url": "https://git.kernel.org/stable/c/2be39946abcde5a6416fb074ef728429e246a996"
        },
        {
          "url": "https://git.kernel.org/stable/c/522d6dcdc645d8f97d6b4cdfd6d8eea307f3ff0e"
        },
        {
          "url": "https://git.kernel.org/stable/c/9a756f277eb89f769dbf380f38245c270d31fdb5"
        },
        {
          "url": "https://git.kernel.org/stable/c/32d6df14fdab71fe1ba304fd9a0db0411ea2e043"
        },
        {
          "url": "https://git.kernel.org/stable/c/97ca58b0fb026799b99e3d552d5f69cf9a3113ad"
        },
        {
          "url": "https://git.kernel.org/stable/c/47049fdadc0eaa115e813735b827e1379c0d2cf8"
        },
        {
          "url": "https://git.kernel.org/stable/c/0918ee2c0eeb4d7f45b82b3dc11e65c2d9b7ad59"
        }
      ],
      "title": "scsi: qla2xxx: Bound i2c-\u003elength in I2C bsg handlers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89864",
    "datePublished": "2026-09-16T10:31:35.068Z",
    "dateReserved": "2026-09-11T19:38:34.771Z",
    "dateUpdated": "2026-10-19T08:53:57.594Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…