How the CVE Works
The vulnerability (CVE-2025-21911) in the Linux kernel’s drm/imagination driver arises due to improper fence release handling in the PowerVR graphics subsystem. When releasing DMA-BUF fences, the kernel attempts to acquire the same `reservation_ww_class_mutex` lock recursively, leading to a deadlock. This occurs because the fence release function processes locks directly instead of offloading the task to a workqueue. Attackers could exploit this flaw to trigger a denial-of-service (DoS) condition by forcing repeated deadlocks in GPU memory management operations.
DailyCVE Form
Platform: Linux Kernel
Version: Pre-patch versions with PowerVR DRM driver
Vulnerability: Deadlock in fence release
Severity: Critical
Date: 04/15/2025
What Undercode Say:
Exploitation:
- Trigger Deadlock: Force repeated DMA-BUF ioctl calls to exhaust GPU resources.
- Kernel Panic: Lock contention causes system freeze or crash.
Protection:
- Patch: Apply kernel update with workqueue-based fence release.
2. Mitigation: Disable PowerVR DRM module if unused.
Analytics:
- CVSS 4.0: 9.1 (Critical) – AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
- Affected Versions: Linux kernels 5.15–6.6 with `drm/imagination` support.
Commands:
Check if PowerVR DRM is loaded: lsmod | grep pvr Temporary mitigation (unload module): sudo rmmod pvr
Code Snippet (Patch Verification):
// Check for workqueue usage in fence release: grep -A 10 "pvr_fence_release" drivers/gpu/drm/imagination/pvr_fence.c
Exploit PoC (Conceptual):
include <fcntl.h> int main() { int fd = open("/dev/dri/card0", O_RDWR); while (1) ioctl(fd, DMA_BUF_IOCTL_SYNC, NULL); // Force deadlock }
Detection:
Monitor deadlocks in kernel logs: dmesg | grep "possible recursive locking"
References:
- Kernel Git Commit: [bash]
- NVD: CVE-2025-21911
- Mitre: CWE-833 (Deadlock)
No additional commentary beyond rules.
Sources:
Reported By: nvd.nist.gov
Extra Source Hub:
Undercode