Vulnerability · Published Jul 29, 2024 · Assigned by Linux

CVE-2024-41092drm/i915/gt: Fix potential UAF by revoke of fence registers

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 19% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.3%top 80.7% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: drm/i915/gt: Fix potential UAF by revoke of fence registers CI has been sporadically reporting the following issue triggered by igt@i915_selftest@live@hangcheck on ADL-P and similar machines: <6> [414.049203] i915: Running intel_hangcheck_live_selftests/igt_reset_evict_fence ... <6> [414.068804] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled <6> [414.068812] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled <3> [414.070354] Unable to pin Y-tiled fence; err:-4 <3> [414.071282] i915_vma_revoke_fence:301 GEM_BUG_ON(!i915_active_is_idle(&fence->active)) ... <4>[ 609.603992] ------------[ cut here ]------------ <2>[ 609.603995] kernel BUG at drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c:301! <4>[ 609.604003] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI <4>[ 609.604006] CPU: 0 PID: 268 Comm: kworker/u64:3 Tainted: G U W 6.9.0-CI_DRM_14785-g1ba62f8cea9c+ #1 <4>[ 609.604008] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 <4>[ 609.604010] Workqueue: i915 __i915_gem_free_work [i915] <4>[ 609.604149] RIP: 0010:i915_vma_revoke_fence+0x187/0x1f0 [i915] ... <4>[ 609.604271] Call Trace: <4>[ 609.604273] <TASK> ... <4>[ 609.604716] __i915_vma_evict+0x2e9/0x550 [i915] <4>[ 609.604852] __i915_vma_unbind+0x7c/0x160 [i915] <4>[ 609.604977] force_unbind+0x24/0xa0 [i915] <4>[ 609.605098] i915_vma_destroy+0x2f/0xa0 [i915] <4>[ 609.605210] __i915_gem_object_pages_fini+0x51/0x2f0 [i915] <4>[ 609.605330] __i915_gem_free_objects.isra.0+0x6a/0xc0 [i915] <4>[ 609.605440] process_scheduled_works+0x351/0x690 ... In the past, there were similar failures reported by CI from other IGT tests, observed on other platforms. Before commit 63baf4f3d587 ("drm/i915/gt: Only wait for GPU activity before unbinding a GGTT fence"), i915_vma_revoke_fence() was waiting for idleness of vma->active via fence_update(). That commit introduced vma->fence->active in order for the fence_update() to be able to wait selectively on that one instead of vma->active since only idleness of fence registers was needed. But then, another commit 0d86ee35097a ("drm/i915/gt: Make fence revocation unequivocal") replaced the call to fence_update() in i915_vma_revoke_fence() with only fence_write(), and also added that GEM_BUG_ON(!i915_active_is_idle(&fence->active)) in front. No justification was provided on why we might then expect idleness of vma->fence->active without first waiting on it. The issue can be potentially caused by a race among revocation of fence registers on one side and sequential execution of signal callbacks invoked on completion of a request that was using them on the other, still processed in parallel to revocation of those fence registers. Fix it by waiting for idleness of vma->fence->active in i915_vma_revoke_fence(). (cherry picked from commit 24bb052d3dd499c5956abad5f7d8e4fd07da7fb1)

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:8bpftool4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-abi-stablelists4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-core4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-cross-headers4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-debug4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-debug-core4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-debug-devel4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-debug-modules4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-debug-modules-extra4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-devel4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-doc4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-headers4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-modules4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-modules-extra4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-rt4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-core4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-debug4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-debug-core4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-debug-devel4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-debug-modules4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-debug-modules-extra4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-devel4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-modules4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-rt-modules-extra4.18.0-553.27.1.rt7.368.el8_10ALSA-2024:8870
AlmaLinux:8kernel-tools4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-tools-libs4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-tools-libs-devel4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-zfcpdump4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-zfcpdump-core4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-zfcpdump-devel4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-zfcpdump-modules4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8kernel-zfcpdump-modules-extra4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8perf4.18.0-553.27.1.el8_10ALSA-2024:8856
AlmaLinux:8python3-perf4.18.0-553.27.1.el8_10ALSA-2024:8856
Debian:12linux6.1.98-1DEBIAN-CVE-2024-41092
Debian:13linux6.9.8-1DEBIAN-CVE-2024-41092
Debian:14linux6.9.8-1DEBIAN-CVE-2024-41092
Rocky Linux:8kernel0:4.18.0-553.27.1.el8_10RLSA-2024:8856
Rocky Linux:8kernel-rt0:4.18.0-553.27.1.rt7.368.el8_10RLSA-2024:8870
Ubuntu:22.04:LTSlinux5.15.0-121.131UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux6.8.0-48.48UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-aws5.15.0-1069.75UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-aws6.8.0-1018.20UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1018.19~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure5.15.0-1072.81UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-azure6.8.0-1017.20UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1017.20~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-fde5.15.0-1072.81.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gcp5.15.0-1068.76UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-gcp6.8.0-1017.19UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1017.19~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gke5.15.0-1066.72UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-gke6.8.0-1013.17UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-gkeop5.15.0-1052.59UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1002.4UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-48.48~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-ibm5.15.0-1062.65UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-ibm6.8.0-1015.15UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1015.15~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-intel-iotg5.15.0-1064.70UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-kvm5.15.0-1066.71UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-lowlatency5.15.0-121.131UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-48.48.3UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-48.48.3~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia5.15.0-1064.65UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1017.19UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1017.19~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1017.19.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia-tegra5.15.0-1028.28UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-nvidia-tegra-igx5.15.0-1016.16UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1016.16UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oracle5.15.0-1067.73UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-oracle6.8.0-1015.16UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1015.15~22.04.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-raspi5.15.0-1062.65UBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-raspi6.8.0-1014.16UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-riscv6.8.0-48.48.1UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-48.48.1~22.04.2UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-41092
Ubuntu:24.04:LTSlinux-xilinx6.8.0-1009.10UBUNTU-CVE-2024-41092
Ubuntu:22.04:LTSlinux-xilinx-zynqmp5.15.0-1035.39UBUNTU-CVE-2024-41092

Affected products (as reported)

VendorProductVersions
Linux Linux 0d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before f771b91f21c46ad1217328d05e72a2c7e3add5350d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before 29c0fdf49078ab161570d3d1c6e13d66f182717d0d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before ca0fabd365a27a94a36e68a7a02df8ff3c13dac60d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before 06dec31a0a5112a91f49085e8a8fa1a82296d5c70d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before 414f4a31f7a811008fd9a33b06216b060bad18fc0d86ee35097ae0f1c2c50f2b8035ef480e25e4f1 – before 996c3412a06578e9d779a16b9e79ace18125ab50
Linux Linux 5.8

References