Cloudanix VulnDB

CVE-2025-38703

None

CVSS

—

EPSS

0.2%

Published

Sep 4, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in the Linux graphics driver could let attackers access memory that's already been freed, potentially causing crashes or allowing unauthorized access on affected systems.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability allows use-after-free access to data pointed to by dma-fences, such as timeline names and shared locks, because the driver frees memory without ensuring an RCU grace period after signaling the fence.

Why it matters to the business

This can lead to system instability, crashes, or potential privilege escalation on Linux systems with Xe graphics drivers, especially in environments with containerized workloads or third-party fence usage.

How an attack unfolds

An attacker with access to the graphics subsystem can close a submit queue to free associated data while a dma-fence is still held by another process or sync_fence fd, leading to use-after-free when the fence is accessed.

How to fix it

Update the Linux kernel to a version containing commit b17fcce70733c211cb5dabf54f4f9491920b1d92 or later, ensuring RCU grace periods are respected for fence data freeing.

How to confirm the fix worked

Verify the kernel source includes the changes for making dma-fences compliant with safe access rules using RCU, and test fence export and queue closing scenarios.

Typical attack path

  1. Identify or create a submit queue in the Xe driver
  2. Export the dma-fence to a third party such as a sync_fence file descriptor
  3. Close the submit queue to trigger freeing of timeline name or lock
  4. Access the fence after the data has been freed to trigger the use-after-free

How to detect it

Look for kernel oops or crashes related to dma-fence access in logs, particularly involving Xe driver and freed timeline names.

What your security team should do

  • Prioritize kernel updates on systems using Intel Xe graphics
  • Monitor for kernel updates from stable repositories
  • Review container and graphics driver configurations for exposure

The record

In the Linux kernel, the following vulnerability has been resolved: drm/xe: Make dma-fences compliant with the safe access rules Xe can free some of the data pointed to by the dma-fences it exports. Most notably the timeline name can get freed if userspace closes the associated submit queue. At the same time the fence could have been exported to a third party (for example a sync_fence fd) which will then cause an use- after-free on subsequent access. To make this safe we need to make the driver compliant with the newly documented dma-fence rules. Driver has to ensure a RCU grace period between signalling a fence and freeing any data pointed to by said fence. For the timeline name we simply make the queue be freed via kfree_rcu and for the shared lock associated with multiple queues we add a RCU grace period before freeing the per GT structure holding the lock.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:9 kernel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-devel-matched 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-devel-matched 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-64k-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-abi-stablelists 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-cross-headers 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-devel-matched 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-debug-uki-virt 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-devel-matched 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-doc 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-headers 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-rt-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-tools 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-tools-libs 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-tools-libs-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-uki-virt 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-uki-virt-addons 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-devel 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-devel-matched 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules-core 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules-extra 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 libperf 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 perf 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 python3-perf 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 rtla 0 5.14.0-611.24.1.el9_7
AlmaLinux:9 rv 0 5.14.0-611.24.1.el9_7
Debian:11 linux 0 No fix
Debian:12 linux 0 No fix
Debian:13 linux 0 6.12.43-1
Debian:14 linux 0 6.16.3-1
Linux Kernel 6.8.0 6.12.43
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7-RT_Update_5 0 1-150700.1.3.1
SUSE:Real Time Module 15 SP7 kernel-rt 0 6.4.0-150700.7.19.1
SUSE:Real Time Module 15 SP7 kernel-source-rt 0 6.4.0-150700.7.19.1
SUSE:Real Time Module 15 SP7 kernel-syms-rt 0 6.4.0-150700.7.19.1
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.6.1.160000.2.4
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.6.1

Related vulnerabilities