{"api_version":"1","generated_at":"2026-09-12T10:43:14+00:00","cve":"CVE-2026-89570","urls":{"html":"https://cve.report/CVE-2026-89570","api":"https://cve.report/api/cve/CVE-2026-89570.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-89570","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-89570"},"summary":{"title":"cxl/mce: Make the MCE notifier per-region","description":"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) ]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-11 20:19:41","updated_at":"2026-09-11 20:19:41"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/5563db13c9528a56c7161260ec75ec8690dc5608","name":"https://git.kernel.org/stable/c/5563db13c9528a56c7161260ec75ec8690dc5608","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/491d8c9ac98d55073bda778f88a5248d4cce3fa0","name":"https://git.kernel.org/stable/c/491d8c9ac98d55073bda778f88a5248d4cce3fa0","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/775d0f4558f4cec0ee0c8966595d1add1791f36e","name":"https://git.kernel.org/stable/c/775d0f4558f4cec0ee0c8966595d1add1791f36e","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89570","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89570","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 516e5bd0b6bf4ae1ad072df637b428a737c3c870 5563db13c9528a56c7161260ec75ec8690dc5608 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 516e5bd0b6bf4ae1ad072df637b428a737c3c870 491d8c9ac98d55073bda778f88a5248d4cce3fa0 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 516e5bd0b6bf4ae1ad072df637b428a737c3c870 775d0f4558f4cec0ee0c8966595d1add1791f36e git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.15","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.15 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.51 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.4 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","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","vendor":"Linux","versions":[{"lessThan":"5563db13c9528a56c7161260ec75ec8690dc5608","status":"affected","version":"516e5bd0b6bf4ae1ad072df637b428a737c3c870","versionType":"git"},{"lessThan":"491d8c9ac98d55073bda778f88a5248d4cce3fa0","status":"affected","version":"516e5bd0b6bf4ae1ad072df637b428a737c3c870","versionType":"git"},{"lessThan":"775d0f4558f4cec0ee0c8966595d1add1791f36e","status":"affected","version":"516e5bd0b6bf4ae1ad072df637b428a737c3c870","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","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","vendor":"Linux","versions":[{"status":"affected","version":"6.15"},{"lessThan":"6.15","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.51","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.4","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.51","versionStartIncluding":"6.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.4","versionStartIncluding":"6.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc1","versionStartIncluding":"6.15","vulnerable":true}],"negate":false,"operator":"OR"}]}],"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) ]"}],"providerMetadata":{"dateUpdated":"2026-09-11T19:44:39.584Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/5563db13c9528a56c7161260ec75ec8690dc5608"},{"url":"https://git.kernel.org/stable/c/491d8c9ac98d55073bda778f88a5248d4cce3fa0"},{"url":"https://git.kernel.org/stable/c/775d0f4558f4cec0ee0c8966595d1add1791f36e"}],"title":"cxl/mce: Make the MCE notifier per-region","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-89570","datePublished":"2026-09-11T19:44:39.584Z","dateReserved":"2026-09-11T19:38:34.726Z","dateUpdated":"2026-09-11T19:44:39.584Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-11 20:19:41","lastModifiedDate":"2026-09-11 20:19:41","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"89570","Ordinal":"1","Title":"cxl/mce: Make the MCE notifier per-region","CVE":"CVE-2026-89570","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"89570","Ordinal":"1","NoteData":"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) ]","Type":"Description","Title":"cxl/mce: Make the MCE notifier per-region"}]}}}