CVE-2026-23466 (GCVE-0-2026-23466)
Vulnerability from cvelistv5 – Published: 2026-04-03 15:15 – Updated: 2026-08-05 12:22
VLAI
EPSS
VEX
Title
drm/xe: Open-code GGTT MMIO access protection
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Open-code GGTT MMIO access protection
GGTT MMIO access is currently protected by hotplug (drm_dev_enter),
which works correctly when the driver loads successfully and is later
unbound or unloaded. However, if driver load fails, this protection is
insufficient because drm_dev_unplug() is never called.
Additionally, devm release functions cannot guarantee that all BOs with
GGTT mappings are destroyed before the GGTT MMIO region is removed, as
some BOs may be freed asynchronously by worker threads.
To address this, introduce an open-coded flag, protected by the GGTT
lock, that guards GGTT MMIO access. The flag is cleared during the
dev_fini_ggtt devm release function to ensure MMIO access is disabled
once teardown begins.
(cherry picked from commit 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431)
Severity
7.8 (High)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
919bb54e989c1edef87e9797be125c94c450fc65 , < e2b424aadecb640f9e037b2891191cf8fd4c64cf
(git)
Affected: 919bb54e989c1edef87e9797be125c94c450fc65 , < 1e9e2640d870d4837bcfdc220cb2c99ae5ee119f (git) Affected: 919bb54e989c1edef87e9797be125c94c450fc65 , < 76326dc06d8793c2c81c31cc0115dbc348de2f88 (git) Affected: 919bb54e989c1edef87e9797be125c94c450fc65 , < 01f2557aa684e514005541e71a3d01f4cd45c170 (git) |
guessed | |
| Linux | Linux |
Affected:
6.12
Unaffected: 0 , < 6.12 (semver) Unaffected: 6.12.78 , ≤ 6.12.* (semver) Unaffected: 6.18.20 , ≤ 6.18.* (semver) Unaffected: 6.19.10 , ≤ 6.19.* (semver) Unaffected: 7.0 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_ggtt.c",
"drivers/gpu/drm/xe/xe_ggtt_types.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e2b424aadecb640f9e037b2891191cf8fd4c64cf",
"status": "affected",
"version": "919bb54e989c1edef87e9797be125c94c450fc65",
"versionType": "git"
},
{
"lessThan": "1e9e2640d870d4837bcfdc220cb2c99ae5ee119f",
"status": "affected",
"version": "919bb54e989c1edef87e9797be125c94c450fc65",
"versionType": "git"
},
{
"lessThan": "76326dc06d8793c2c81c31cc0115dbc348de2f88",
"status": "affected",
"version": "919bb54e989c1edef87e9797be125c94c450fc65",
"versionType": "git"
},
{
"lessThan": "01f2557aa684e514005541e71a3d01f4cd45c170",
"status": "affected",
"version": "919bb54e989c1edef87e9797be125c94c450fc65",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_ggtt.c",
"drivers/gpu/drm/xe/xe_ggtt_types.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.12"
},
{
"lessThan": "6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.78",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.20",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.10",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.0",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.78",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.20",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.10",
"versionStartIncluding": "6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: Open-code GGTT MMIO access protection\n\nGGTT MMIO access is currently protected by hotplug (drm_dev_enter),\nwhich works correctly when the driver loads successfully and is later\nunbound or unloaded. However, if driver load fails, this protection is\ninsufficient because drm_dev_unplug() is never called.\n\nAdditionally, devm release functions cannot guarantee that all BOs with\nGGTT mappings are destroyed before the GGTT MMIO region is removed, as\nsome BOs may be freed asynchronously by worker threads.\n\nTo address this, introduce an open-coded flag, protected by the GGTT\nlock, that guards GGTT MMIO access. The flag is cleared during the\ndev_fini_ggtt devm release function to ensure MMIO access is disabled\nonce teardown begins.\n\n(cherry picked from commit 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431)"
}
],
"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 vulnerable GGTT removal path is in the local Intel xe DRM driver teardown/probe-failure path, reached through local device/driver activity rather than network or adjacent input.\nAC:L - Once a probe-failure or teardown window exists with GGTT-mapped BO cleanup pending, the stale MMIO access follows from deterministic cleanup ordering; repeated local attempts can trigger the condition.\nPR:L - The path is local and tied to DRM/driver resources; although forcing probe failure may require stronger controls in some deployments, local DRM access and cleanup are involved, so Low is the higher defensible choice under the uncertainty rule.\nUI:N - No separate victim action is required after the local attacker triggers the driver/probe/cleanup sequence.\nS:U - The impact remains within the local kernel/driver security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - The bug is stale GGTT MMIO access after teardown, a use-after-unmap style memory corruption condition; under the required overestimation rule, such corruption is treated as potentially enabling broader kernel information disclosure.\nI:H - The vulnerable operation writes GGTT PTEs through a stale MMIO mapping after it may have been removed, so it can plausibly corrupt kernel or device state and is scored as high integrity impact.\nA:H - The observed failure mode is a kernel page fault/oops in `xe_ggtt_set_pte()` from `ggtt_node_remove_work_func()`, causing a kernel crash or severe availability loss."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:22:01.599Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e2b424aadecb640f9e037b2891191cf8fd4c64cf"
},
{
"url": "https://git.kernel.org/stable/c/1e9e2640d870d4837bcfdc220cb2c99ae5ee119f"
},
{
"url": "https://git.kernel.org/stable/c/76326dc06d8793c2c81c31cc0115dbc348de2f88"
},
{
"url": "https://git.kernel.org/stable/c/01f2557aa684e514005541e71a3d01f4cd45c170"
}
],
"title": "drm/xe: Open-code GGTT MMIO access protection",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-23466",
"datePublished": "2026-04-03T15:15:45.754Z",
"dateReserved": "2026-01-13T15:37:46.021Z",
"dateUpdated": "2026-08-05T12:22:01.599Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-23466",
"date": "2026-09-14",
"epss": "0.00129",
"percentile": "0.02846"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-23466\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-04-03T16:16:34.017\",\"lastModified\":\"2026-07-24T22:10:00.140\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/xe: Open-code GGTT MMIO access protection\\n\\nGGTT MMIO access is currently protected by hotplug (drm_dev_enter),\\nwhich works correctly when the driver loads successfully and is later\\nunbound or unloaded. However, if driver load fails, this protection is\\ninsufficient because drm_dev_unplug() is never called.\\n\\nAdditionally, devm release functions cannot guarantee that all BOs with\\nGGTT mappings are destroyed before the GGTT MMIO region is removed, as\\nsome BOs may be freed asynchronously by worker threads.\\n\\nTo address this, introduce an open-coded flag, protected by the GGTT\\nlock, that guards GGTT MMIO access. The flag is cleared during the\\ndev_fini_ggtt devm release function to ensure MMIO access is disabled\\nonce teardown begins.\\n\\n(cherry picked from commit 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431)\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\\n\\ndrm/xe: Implementaci\u00f3n directa de la protecci\u00f3n de acceso MMIO de GGTT\\n\\nEl acceso MMIO de GGTT est\u00e1 actualmente protegido por hotplug (drm_dev_enter), lo que funciona correctamente cuando el controlador se carga con \u00e9xito y luego se desvincula o descarga. Sin embargo, si la carga del controlador falla, esta protecci\u00f3n es insuficiente porque drm_dev_unplug() nunca se llama.\\n\\nAdem\u00e1s, las funciones de liberaci\u00f3n de devm no pueden garantizar que todos los BOs con mapeos de GGTT sean destruidos antes de que se elimine la regi\u00f3n MMIO de GGTT, ya que algunos BOs pueden ser liberados asincr\u00f3nicamente por hilos de trabajo.\\n\\nPara abordar esto, se introduce un indicador de codificaci\u00f3n directa, protegido por el bloqueo de GGTT, que protege el acceso MMIO de GGTT. El indicador se borra durante la funci\u00f3n de liberaci\u00f3n de devm dev_fini_ggtt para asegurar que el acceso MMIO se deshabilite una vez que comienza el desmantelamiento.\\n\\n(seleccionado de la confirmaci\u00f3n 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431)\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/gpu/drm/xe/xe_ggtt.c\",\"drivers/gpu/drm/xe/xe_ggtt_types.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"919bb54e989c1edef87e9797be125c94c450fc65\",\"lessThan\":\"e2b424aadecb640f9e037b2891191cf8fd4c64cf\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"919bb54e989c1edef87e9797be125c94c450fc65\",\"lessThan\":\"1e9e2640d870d4837bcfdc220cb2c99ae5ee119f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"919bb54e989c1edef87e9797be125c94c450fc65\",\"lessThan\":\"76326dc06d8793c2c81c31cc0115dbc348de2f88\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"919bb54e989c1edef87e9797be125c94c450fc65\",\"lessThan\":\"01f2557aa684e514005541e71a3d01f4cd45c170\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/gpu/drm/xe/xe_ggtt.c\",\"drivers/gpu/drm/xe/xe_ggtt_types.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.78\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.20\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.19.10\",\"lessThanOrEqual\":\"6.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0\",\"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}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12\",\"versionEndExcluding\":\"6.12.78\",\"matchCriteriaId\":\"CF16B1DB-0D79-4F76-8B3C-57C79AB99F70\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.18.20\",\"matchCriteriaId\":\"E5571059-6552-48E7-9BEF-3E358C387171\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19\",\"versionEndExcluding\":\"6.19.10\",\"matchCriteriaId\":\"96D34333-38BE-4414-9E79-6EB764329581\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"F253B622-8837-4245-BCE5-A7BF8FC76A16\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4AE85AD8-4641-4E7C-A2F4-305E2CD9EE64\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"F666C8D8-6538-46D4-B318-87610DE64C34\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"02259FDA-961B-47BC-AE7F-93D7EC6E90C2\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/01f2557aa684e514005541e71a3d01f4cd45c170\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/1e9e2640d870d4837bcfdc220cb2c99ae5ee119f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/76326dc06d8793c2c81c31cc0115dbc348de2f88\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e2b424aadecb640f9e037b2891191cf8fd4c64cf\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-09-14T11:46:54+00:00",
"cve": "CVE-2026-23466",
"id": "CVE-2026-23466",
"initial_release_date": "2026-04-03T00:00:00+00:00",
"product_status:fixed": "303",
"product_status:known_affected": "98",
"product_status:known_not_affected": "90",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: drm/xe: Open-code GGTT MMIO access protection",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-23466.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "moderate",
"current_release_date": "2026-08-06T01:25:44Z",
"cve": "CVE-2026-23466",
"id": "CVE-2026-23466",
"initial_release_date": "2026-04-03T23:27:09Z",
"product_status:first_fixed": "2",
"product_status:known_not_affected": "254",
"product_status:recommended": "271",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-23466",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-23466.json",
"version": "10"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
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…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…