{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-23466",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-01-13T15:37:46.021Z",
        "datePublished": "2026-04-03T15:15:45.754Z",
        "dateUpdated": "2026-08-05T12:22:01.599Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T12:22:01.599Z"
            },
            "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": {
                        "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"
                    },
                    "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."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/gpu/drm/xe/xe_ggtt.c",
                        "drivers/gpu/drm/xe/xe_ggtt_types.h"
                    ],
                    "versions": [
                        {
                            "version": "919bb54e989c1edef87e9797be125c94c450fc65",
                            "lessThan": "e2b424aadecb640f9e037b2891191cf8fd4c64cf",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "919bb54e989c1edef87e9797be125c94c450fc65",
                            "lessThan": "1e9e2640d870d4837bcfdc220cb2c99ae5ee119f",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "919bb54e989c1edef87e9797be125c94c450fc65",
                            "lessThan": "76326dc06d8793c2c81c31cc0115dbc348de2f88",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "919bb54e989c1edef87e9797be125c94c450fc65",
                            "lessThan": "01f2557aa684e514005541e71a3d01f4cd45c170",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/gpu/drm/xe/xe_ggtt.c",
                        "drivers/gpu/drm/xe/xe_ggtt_types.h"
                    ],
                    "versions": [
                        {
                            "version": "6.12",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.12",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.12.78",
                            "lessThanOrEqual": "6.12.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.20",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.19.10",
                            "lessThanOrEqual": "6.19.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.0",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.12",
                                    "versionEndExcluding": "6.12.78"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.12",
                                    "versionEndExcluding": "6.18.20"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.12",
                                    "versionEndExcluding": "6.19.10"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.12",
                                    "versionEndExcluding": "7.0"
                                }
                            ]
                        }
                    ]
                }
            ],
            "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"
            }
        }
    }
}