CVE-2026-68266: drm/xe: Hold a dma-buf reference for imported BOs
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Hold a dma-buf reference for imported BOs
An imported dma-buf BO is created as a ttmbotypesg BO whose reservation object is the exporter's dmabuf->resv. The importer, however, only takes a dma-buf reference after a successful dmabufdynamicattach(). Until then nothing keeps the exporter alive, so if the exporter is freed while the BO still references its resv, a later access to that resv is a use-after-free:
Oops: general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b9c Workqueue: ttm ttmbodelayeddelete [ttm] RIP: 0010:mutexcanspinonowner+0x3f/0xc0
This can be reached on two paths:
- dmabufdynamicattach() fails, or - ttmboinitreserved() fails during BO creation.
In both cases the BO already has bo->base.resv pointing at the exporter resv, and sg BOs are always torn down via ttmbodelayeddelete(), which locks bo->base.resv asynchronously - potentially after the exporter has been freed.
Take the dma-buf reference in xeboinitlocked(), before ttmboinitreserved(), so it also covers a creation failure there, and release it in xettmbodestroy(). The reference is held for the whole BO lifetime, keeping the shared resv alive on every path.
v2: - Reworked the fix to avoid creating the imported sg BO before dmabufdynamicattach() succeeds. - Attach with importerpriv == NULL and make invalidatemappings ignore incomplete imports.
v3: - Dropped the xe-side reordering approach since importerpriv must be valid when dmabufdynamicattach() publishes the attachment. - Per Christian's suggestion on the v1 thread, keyed the check on importattach rather than removing the sg guard entirely. - Fixes both xe and amdgpu in a single TTM patch.
v4: - Moved importattach check to after dmaresvcopyfences() so fences are copied before returning for successful imports (Thomas). - Removed exporter-alive claim from commit message (Thomas).
v5: - Add drm/xe patch to keep imported sg BOs off the LRU before attach succeeds; the TTM fix alone is not sufficient for xe if the BO is already LRU-visible. (Thomas) v4 patch: https://patchwork.freedesktop.org/patch/736663/?series=169129&rev=2 - Patch 1 (drm/ttm) carries Christian's Reviewed-by from v4.
v6: - Reworked the fix based on Thomas' suggestion. Instead of the TTM resv individualization (v1-v5) plus the xe off-LRU/placement handling (v5), just hold a dma-buf reference for the imported BO lifetime so the shared resv can never be freed while the BO still references it. Single xe patch, no TTM change. (Thomas) - Take the reference in xeboinitlocked() before ttmboinitreserved() so a TTM creation failure is covered too (Thomas). - Dropped the v5 series (drm/ttm + drm/xe off-LRU); the off-LRU approach also regressed in CI BAT via ttmbopipelinegutting() creating a ghost BO that outlived the exporter. Link to v5: https://patchwork.freedesktop.org/series/169984/
v7: - Move changelog above --- so it stays in the commit message. - Reorder changelog entries oldest-to-newest. (Thomas)
(cherry picked from commit 3516f3fae6be35642f8f06f8a218da6425c0306a)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.13-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - Upgrade
Upgrade
ubuntu/linux-aws-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1014.14~24.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17~24.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-fde-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1016.16~24.04.1 - Upgrade
Upgrade
ubuntu/linux-gcp-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1014.14~24.04.1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-38.38~24.04.4 - Upgrade
Upgrade
ubuntu/linux-nvidia-tegrato a version that resolves this vulnerability.Fixed in 6.8.0-1036.39 - Upgrade
Upgrade
ubuntu/linux-oracle-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1013.13~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-38.38 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1014.14 - Upgrade
Upgrade
ubuntu/linux-azureto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-azure-fdeto a version that resolves this vulnerability.Fixed in 7.0.0-1016.16 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1014.14 - Upgrade
Upgrade
ubuntu/linux-gketo a version that resolves this vulnerability.Fixed in 7.0.0-1008.9 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1015.15 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1015.15 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1013.13 - Upgrade
Upgrade
ubuntu/linux-realtimeto a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1 - Upgrade
Upgrade
Linux kernel drm/xeto a version that resolves this vulnerability.Patch 3516f3fae6be35642f8f06f8a218da6425c0306a
Event History
Frequently Asked Questions
What is the severity of CVE-2026-68266?
CVE-2026-68266 has a risk score of 34, indicating a moderate severity level.
How do I fix CVE-2026-68266?
To fix CVE-2026-68266, ensure you update your Linux kernel to the latest version where the vulnerability has been patched.
What type of vulnerability is CVE-2026-68266?
CVE-2026-68266 is classified as a Use After Free vulnerability.
In which software is CVE-2026-68266 found?
CVE-2026-68266 is found in the Linux kernel.
What does CVE-2026-68266 affect?
CVE-2026-68266 affects the handling of imported dma-buf buffer objects in the Linux kernel.