← Back to CVE Explorer

CVE-2026-89570

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: cxl/mce: Make the MCE notifier per-region Flavien Solt reported lifetime issues with the CXL MCE notifier, which can lead to NULL dereferences and use-after-free in the MCE handler. The notifier was registered per memory device and stored in 'struct cxl_memdev_state', even though it only needs the region state (the region's SPA range and its extended linear cache size). Instead of keeping the memory device and endpoint alive, the correct fix is to move the notifier into 'struct cxl_region' and register it from cxl_region_probe() as it should be a per-region notifier. Setup the registration to only happen for regions that have an extended linear cache as that is the only current usage. Remove cxl_port_get_spa_cache_alias() as it is now dead code. [ dj: Update dev_warn() when notifier fails due to kconfig. (Ben) ]

Severity
HIGH
CVSS score
7.8 (v3.1)
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-11 20:19:41.050000
Last modified
2026-10-19 09:17:52.890000
View original CVE JSON
{
  "id": "CVE-2026-89570",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-11T20:19:41.050",
  "lastModified": "2026-10-19T09:17:52.890",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncxl/mce: Make the MCE notifier per-region\n\nFlavien Solt reported lifetime issues with the CXL MCE notifier, which\ncan lead to NULL dereferences and use-after-free in the MCE handler.\nThe notifier was registered per memory device and stored in 'struct\ncxl_memdev_state', even though it only needs the region state (the\nregion's SPA range and its extended linear cache size).\n\nInstead of keeping the memory device and endpoint alive, the correct fix\nis to move the notifier into 'struct cxl_region' and register it from\ncxl_region_probe() as it should be a per-region notifier. Setup the\nregistration to only happen for regions that have an extended linear\ncache as that is the only current usage.\n\nRemove cxl_port_get_spa_cache_alias() as it is now dead code.\n\n[ dj: Update dev_warn() when notifier fails due to kconfig. (Ben) ]"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/cxl/core/mbox.c",
            "drivers/cxl/core/mce.c",
            "drivers/cxl/core/region.c",
            "drivers/cxl/cxl.h",
            "drivers/cxl/cxlmem.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "516e5bd0b6bf4ae1ad072df637b428a737c3c870",
              "lessThan": "5563db13c9528a56c7161260ec75ec8690dc5608",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "516e5bd0b6bf4ae1ad072df637b428a737c3c870",
              "lessThan": "491d8c9ac98d55073bda778f88a5248d4cce3fa0",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "516e5bd0b6bf4ae1ad072df637b428a737c3c870",
              "lessThan": "775d0f4558f4cec0ee0c8966595d1add1791f36e",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/cxl/core/mbox.c",
            "drivers/cxl/core/mce.c",
            "drivers/cxl/core/region.c",
            "drivers/cxl/cxl.h",
            "drivers/cxl/cxlmem.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.15",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.15",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.51",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.4",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "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/491d8c9ac98d55073bda778f88a5248d4cce3fa0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/5563db13c9528a56c7161260ec75ec8690dc5608",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/775d0f4558f4cec0ee0c8966595d1add1791f36e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}