CVE-2026-68264: drm/xe/pt: Reset current_op in xe_pt_update_ops_init()
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081023-CVE-2026-68264-6281@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: drm/xe/pt: Reset current_op in xe_pt_update_ops_init() xe_pt_update_ops_init() fails to reset current_op to 0. On the vm_bind path, ops_execute() calls xe_pt_update_ops_prepare() inside the xe_validation_guard() / drm_exec_until_all_locked() loop. When that loop retries due to lock contention or OOM eviction (drm_exec_retry_on_contention() / xe_validation_retry_on_oom()), xe_pt_update_ops_prepare() runs again on the same vops, and each call to bind_op_prepare() increments current_op without resetting it. After N retries current_op exceeds the array size allocated by xe_vma_ops_alloc(), causing an out-of-bounds write into SLUB-poisoned memory and a subsequent UAF crash in xe_migrate_update_pgtables_cpu() when reading the corrupted pt_op->bind. Also reset needs_svm_lock and needs_invalidation which are derived in the same prepare pass and would otherwise cause wrong migrate ops selection and redundant TLB invalidation on retry. Fix this by resetting current_op, needs_svm_lock and needs_invalidation in xe_pt_update_ops_init(). v2 (Matt): - Add details in commit message. - Add Fixes tag and Cc to [email protected] (cherry picked from commit 046045543e530605c441063535e7dca0075369a6) The Linux kernel CVE team has assigned CVE-2026-68264 to this issue. Affected and fixed versions =========================== Issue introduced in 6.12 with commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 and fixed in 6.12.103 with commit be5c39730ab8f1dfe59983bf7d8e3705541d1fee Issue introduced in 6.12 with commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 and fixed in 6.18.44 with commit 157b1e3384d7d37f59c0c2b2ff2af8f557db1daa Issue introduced in 6.12 with commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 and fixed in 7.1.6 with commit 90e4fd331b980259c40118d05b89b0ec514e7c48 Issue introduced in 6.12 with commit e8babb280b5ef904df54b3a90e5a7e3a9600c4a9 and fixed in 7.2-rc4 with commit 6384271ac1ac0099198d15df79212a19ebdb929d Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-68264 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: drivers/gpu/drm/xe/xe_pt.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/be5c39730ab8f1dfe59983bf7d8e3705541d1fee https://git.kernel.org/stable/c/157b1e3384d7d37f59c0c2b2ff2af8f557db1daa https://git.kernel.org/stable/c/90e4fd331b980259c40118d05b89b0ec514e7c48 https://git.kernel.org/stable/c/6384271ac1ac0099198d15df79212a19ebdb929d