GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-90007 (GCVE-0-2026-90007)

Vulnerability from cvelistv5 – Published: 2026-09-16 10:33 – Updated: 2026-09-16 14:41
VLAI
Title
scsi: pm8001: Use rollback index when freeing MSI-X vectors
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: pm8001: Use rollback index when freeing MSI-X vectors pm8001_request_msix() unwinds previously registered handlers with free_irq() when request_irq() fails. The rollback loop uses the failing index i for every iteration instead of the already registered vector index j. That passes the wrong IRQ/dev_id pair to free_irq() and leaves the earlier handlers installed. Use j for both pci_irq_vector() and the matching irq_vector entry in the rollback loop.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < f39e3ca1f688d7c08954a0794e9bf1e279c83b15 (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < a980dec7c69990e4f119bcf6a2ea093d1c4975e8 (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < 0205db768570f9a46b20912afa581a0c7a63d8b7 (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < 2853ce9c88e0e6dd575f95f28b3a8c2b27164115 (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < fb22a8d2f3ac6665cc8bee197096b6675cac1a9f (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < dd817463c9b42a3a9e23d15b86c6c77a6cfb809d (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < e20b16aa3b49f9db5510940740255a987e6f2a6f (git)
Affected: a76037ff3479ad333a2505061915f7a21e7f3fb6 , < 3f92a64545165bdbb36dee8fa35626b295463313 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.11
Unaffected: 0 , < 4.11 (semver)
Unaffected: 5.10.270 , ≤ 5.10.* (semver)
Unaffected: 5.15.221 , ≤ 5.15.* (semver)
Unaffected: 6.1.188 , ≤ 6.1.* (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.51 , ≤ 6.18.* (semver)
Unaffected: 7.2.5 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/pm8001/pm8001_init.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f39e3ca1f688d7c08954a0794e9bf1e279c83b15",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "a980dec7c69990e4f119bcf6a2ea093d1c4975e8",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "0205db768570f9a46b20912afa581a0c7a63d8b7",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "2853ce9c88e0e6dd575f95f28b3a8c2b27164115",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "fb22a8d2f3ac6665cc8bee197096b6675cac1a9f",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "dd817463c9b42a3a9e23d15b86c6c77a6cfb809d",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "e20b16aa3b49f9db5510940740255a987e6f2a6f",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            },
            {
              "lessThan": "3f92a64545165bdbb36dee8fa35626b295463313",
              "status": "affected",
              "version": "a76037ff3479ad333a2505061915f7a21e7f3fb6",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/scsi/pm8001/pm8001_init.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.11"
            },
            {
              "lessThan": "4.11",
              "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-rc2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.51",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.5",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc2",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: pm8001: Use rollback index when freeing MSI-X vectors\n\npm8001_request_msix() unwinds previously registered handlers with\nfree_irq() when request_irq() fails. The rollback loop uses the failing\nindex i for every iteration instead of the already registered vector\nindex j.\n\nThat passes the wrong IRQ/dev_id pair to free_irq() and leaves the\nearlier handlers installed. Use j for both pci_irq_vector() and the\nmatching irq_vector entry in the rollback loop."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is in pm8001_request_msix() on the PCI SAS HBA probe and resume path (pm8001_pci_probe/pm8001_pci_resume \u2192 pm8001_alloc/pm8001_request_irq), not in network, FC, or USB packet processing; PMC-Sierra/Microchip/ATTO/Adaptec SPCv controllers are local PCI devices in storage servers and workstations.\nAC:L - Once request_irq() fails after any earlier MSI-X vector succeeded, rollback always free_irq()s the failing index i instead of registered index j, then pci_free_irq_vectors() and kfree of the HBA; a local attacker can induce that partial failure with memory or IRQ exhaustion and does not depend on an uncontrolled race.\nPR:L - An unprivileged local user on a machine with a multi-vector SPCv pm8001 HBA can apply memory pressure during probe, deferred probe, or resume so a later request_irq() fails, then spray the heap against the leftover IRQ handler; PCI bind/unbind needs init-namespace root but is not required to exploit the planted UAF.\nUI:N - No victim must mount a filesystem, open a device, or plug hardware; the attacker induces the MSI-X request failure and consumes the leftover handler without another user\u0027s action.\nS:U - The leftover irqaction and use-after-free of pm8001_hba_info stay in the host kernel IRQ/SCSI path and do not cross a VM, IOMMU, or other security-authority boundary.\nC:H - Failed MSI-X registration leaves pm8001_interrupt_handler_msix installed with dev_id pointing into pm8001_ha, which pm8001_free() then kfree()s, a use-after-free that per kernel CNA guidance enables arbitrary kernel memory disclosure via slab reuse.\nI:H - The same dangling MSI-X handler reads irq_vector-\u003edrv_inst and invokes isr/tasklet on the freed HBA object; reclaiming that heap allocation yields write and control-flow hijack primitives, so integrity impact is High.\nA:H - Wrong-index free_irq() hits WARN on an already-free IRQ, pci_free_irq_vectors() tears down descriptors with live irqactions, and a later IRQ or panic_on_warn can oops or panic the kernel, fully denying availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-16T14:41:21.926Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f39e3ca1f688d7c08954a0794e9bf1e279c83b15"
        },
        {
          "url": "https://git.kernel.org/stable/c/a980dec7c69990e4f119bcf6a2ea093d1c4975e8"
        },
        {
          "url": "https://git.kernel.org/stable/c/0205db768570f9a46b20912afa581a0c7a63d8b7"
        },
        {
          "url": "https://git.kernel.org/stable/c/2853ce9c88e0e6dd575f95f28b3a8c2b27164115"
        },
        {
          "url": "https://git.kernel.org/stable/c/fb22a8d2f3ac6665cc8bee197096b6675cac1a9f"
        },
        {
          "url": "https://git.kernel.org/stable/c/dd817463c9b42a3a9e23d15b86c6c77a6cfb809d"
        },
        {
          "url": "https://git.kernel.org/stable/c/e20b16aa3b49f9db5510940740255a987e6f2a6f"
        },
        {
          "url": "https://git.kernel.org/stable/c/3f92a64545165bdbb36dee8fa35626b295463313"
        }
      ],
      "title": "scsi: pm8001: Use rollback index when freeing MSI-X vectors",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90007",
    "datePublished": "2026-09-16T10:33:16.098Z",
    "dateReserved": "2026-09-11T19:38:34.781Z",
    "dateUpdated": "2026-09-16T14:41:21.926Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90007",
      "date": "2026-09-17",
      "epss": "0.00164",
      "percentile": "0.06017"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-17T01:08:37.000Z",
      "cve": "CVE-2026-90007",
      "id": "msrc_CVE-2026-90007",
      "initial_release_date": "2026-09-17T01:08:37.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "scsi: pm8001: Use rollback index when freeing MSI-X vectors",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-90007.json",
      "version": "1"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-90007\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T11:17:13.323\",\"lastModified\":\"2026-09-16T15:18:24.297\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nscsi: pm8001: Use rollback index when freeing MSI-X vectors\\n\\npm8001_request_msix() unwinds previously registered handlers with\\nfree_irq() when request_irq() fails. The rollback loop uses the failing\\nindex i for every iteration instead of the already registered vector\\nindex j.\\n\\nThat passes the wrong IRQ/dev_id pair to free_irq() and leaves the\\nearlier handlers installed. Use j for both pci_irq_vector() and the\\nmatching irq_vector entry in the rollback loop.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/scsi/pm8001/pm8001_init.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"f39e3ca1f688d7c08954a0794e9bf1e279c83b15\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"a980dec7c69990e4f119bcf6a2ea093d1c4975e8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"0205db768570f9a46b20912afa581a0c7a63d8b7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"2853ce9c88e0e6dd575f95f28b3a8c2b27164115\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"fb22a8d2f3ac6665cc8bee197096b6675cac1a9f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"dd817463c9b42a3a9e23d15b86c6c77a6cfb809d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"e20b16aa3b49f9db5510940740255a987e6f2a6f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a76037ff3479ad333a2505061915f7a21e7f3fb6\",\"lessThan\":\"3f92a64545165bdbb36dee8fa35626b295463313\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/scsi/pm8001/pm8001_init.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.11\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.11\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.270\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.221\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.188\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.157\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.110\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.51\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.5\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0205db768570f9a46b20912afa581a0c7a63d8b7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/2853ce9c88e0e6dd575f95f28b3a8c2b27164115\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3f92a64545165bdbb36dee8fa35626b295463313\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a980dec7c69990e4f119bcf6a2ea093d1c4975e8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/dd817463c9b42a3a9e23d15b86c6c77a6cfb809d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e20b16aa3b49f9db5510940740255a987e6f2a6f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f39e3ca1f688d7c08954a0794e9bf1e279c83b15\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fb22a8d2f3ac6665cc8bee197096b6675cac1a9f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…