Cloudanix VulnDB

CVE-2025-21697

Medium · 5.5

CVSS

5.5

EPSS

0.3%

Published

Feb 12, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in the Linux graphics driver for certain video hardware could let an attacker on the same computer corrupt memory or gain extra privileges if the driver is not updated.

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

What it actually does

Use-after-free condition in the Linux kernel drm/v3d driver where a completed job pointer is not cleared to NULL, leaving a dangling reference that can be accessed during driver unload or subsequent operations.

Why it matters to the business

Linux systems using V3D graphics hardware face elevated risk of kernel crashes, memory corruption, or local privilege escalation, which can disrupt operations, enable unauthorized access, or trigger compliance issues; the vulnerability affects a widely deployed kernel component with many downstream dependents.

How an attack unfolds

An attacker with local access triggers job submission and completion in the v3d driver without the pointer being nulled, then forces driver unload or re-accesses the stale pointer to perform a use-after-free; documented campaigns by espionage and financially motivated actors targeting similar Linux kernel resource and bounds issues illustrate the pattern of chaining this flaw with other kernel primitives for code execution.

How to fix it

Update the Linux kernel to the fixed commit 1bd6303d08c85072ce40ac01a767ab67195105bd or later stable releases that include the null-pointer assignment after job completion; rebuild and reboot with the patched kernel; apply vendor-supplied updates for distributions shipping affected v3d code.

How to confirm the fix worked

Confirm the running kernel contains commit 1bd6303d08c85072ce40ac01a767ab67195105bd by inspecting git log or kernel version strings; reload the v3d module and verify no warning about an active job appears during unload; run regression tests exercising job submission and driver unload sequences.

Typical attack path

  1. Obtain local user access on a Linux system with V3D hardware enabled
  2. Submit a graphics job via the DRM interface to reach the v3d job completion path
  3. Trigger conditions that complete the job without nulling the device pointer
  4. Unload the driver module or perform operations that dereference the stale job pointer
  5. Exploit the resulting use-after-free for memory corruption or privilege escalation

How to detect it

Review kernel logs for v3d-related warnings about active jobs during module unload; inspect dmesg and audit logs for unusual DRM job submissions followed by module removal or crashes; correlate with threat actor patterns observed in Linux kernel resource-handling exploits.

What your security team should do

  • Prioritize patching all V3D-enabled Linux hosts within the next maintenance window given the use-after-free classification and public exploit research on similar kernel flaws
  • Inventory systems using the v3d DRM driver and schedule kernel upgrades to the fixed commit
  • Monitor for local privilege-escalation attempts targeting graphics subsystems until patches are deployed
  • Review kernel configurations to limit unnecessary graphics driver loading where V3D hardware is absent

The record

In the Linux kernel, the following vulnerability has been resolved: drm/v3d: Ensure job pointer is set to NULL after job completion After a job completes, the corresponding pointer in the device must be set to NULL. Failing to do so triggers a warning when unloading the driver, as it appears the job is still active. To prevent this, assign the job pointer to NULL after completing the job, indicating the job has finished.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:11 linux 0 5.10.234-1
Debian:11 linux-6.1 0 6.1.128-1~deb11u1
Debian:11 linux-6.1 0 6.1.6.1.128-1~deb11u1
Debian:12 linux 0 6.1.128-1
Debian:13 linux 0 6.12.11-1
Linux Kernel 4.19.0 5.4.290
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_9 0 1-150600.1.3.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_9 0 1-150600.13.3.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.42.2.150600.12.18.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.42.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.18.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.18.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.18.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.18.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.42.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.42.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.42.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.42.2
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.42.2
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.29.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.29.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.29.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.29.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.42.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.42.2
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.42.2
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.42.2
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.42.2.150600.12.18.4
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.42.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.42.2
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.42.2
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.42.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.29.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.29.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.42.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.29.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.42.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.29.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.42.2

Related vulnerabilities