CVE-2025-68170
NoneCVSS
—
EPSS
0.2%
Published
Dec 16, 2025
CISA due date
—
Cloudanix analysis
A mistake in the Linux graphics driver for certain AMD cards could let the system free the same memory twice when the driver fails to start, potentially causing crashes or security problems.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Double-free / use-after-free on the rdev structure because kfree() is called on memory that devm_drm_dev_alloc() has already registered for automatic release by the device resource manager; the second release occurs when a failing probe triggers devres cleanup.
Why it matters to the business
Kernel crashes or memory corruption can occur on systems using Radeon graphics during driver initialization failures, leading to unexpected reboots, loss of display functionality, and potential local privilege escalation on affected Ubuntu 20.04 LTS installations; the issue affects a broad set of cloud and server kernel packages with high ecosystem prevalence.
How an attack unfolds
An attacker with local access forces the Radeon probe to fail (for example by supplying a malformed device tree entry or triggering an early error path) so that the driver’s explicit kfree() and the subsequent devres-managed release both act on the same rdev pointer, producing a use-after-free that can be leveraged for memory corruption or code execution.
How to fix it
Upgrade to a fixed kernel package version for each affected flavor: linux 5.4.0-9.12, linux-aws 5.4.0-1005.5, linux-aws-5.15 5.15.0-1014.18~20.04.1, linux-azure 5.4.0-1006.6, linux-azure-5.15 5.15.0-1007.8~20.04.1, linux-azure-fde-5.15 5.15.0-1019.24~20.04.1.1, linux-bluefield 5.4.0-1007.10, linux-gcp 5.4.0-1005.5, linux-gcp-5.15 5.15.0-1006.9~20.04.1, linux-gkeop 5.4.0-1008.9, linux-gkeop-5.15 5.15.0-1003.5~20.04.2, linux-hwe-5.15 5.15.0-33.34~20.04.1, linux-ibm 5.4.0-1003.4.
How to confirm the fix worked
Verify the running kernel version matches or exceeds one of the listed fixed packages, then attempt to load the radeon module under conditions that previously caused probe failure and confirm no double-free or oops occurs in dmesg.
Typical attack path
- Obtain local access on a system with a Radeon GPU using an affected kernel
- Trigger conditions that cause the radeon driver probe to return an error
- Allow the kernel to invoke both the manual kfree and the devres cleanup path
- Exploit the resulting use-after-free for memory corruption or privilege escalation
How to detect it
Search kernel logs (dmesg, /var/log/kern.log, journalctl) for oops or panic messages referencing radeon, drm_dev_alloc, or kfree on the rdev structure during module load or probe failure; no public exploit artifacts are known.
What your security team should do
- Apply the listed fixed kernel packages immediately on all Ubuntu 20.04 LTS systems that use the affected linux, linux-aws, linux-azure, linux-gcp and related flavors
- Prioritize systems that expose Radeon hardware or run in environments where local users can influence driver loading
- Reboot into the updated kernels and monitor for any remaining probe-related oops after deployment
The record
In the Linux kernel, the following vulnerability has been resolved: drm/radeon: Do not kfree() devres managed rdev Since the allocation of the drivers main structure was changed to devm_drm_dev_alloc() rdev is managed by devres and we shouldn't be calling kfree() on it. This fixes things exploding if the driver probe fails and devres cleans up the rdev after we already free'd it. (cherry picked from commit 16c0681617b8a045773d4d87b6140002fa75b03b)
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 6.12.0 | 6.12.58 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.9.1.160000.2.6 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.9.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel