CVE-2026-52987: drm/amdgpu: avoid double drm_exec_fini() in userq validate

Published Jun 24, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

drm/amdgpu: avoid double drmexecfini() in userq validate

When newaddition is true, amdgpuuserqvmvalidate() calls drmexecfini(&exec) before iterating over the collected HMM ranges and calling amdgputtmttgetuserpages().

If amdgputtmttgetuserpages() fails in that path, the code jumps to unlockall and calls drmexecfini(&exec) a second time on the same exec object. drmexecfini() is not idempotent: it frees exec->objects and may also drop exec->contended and finalize the ww acquire context.

Route that error path directly to the range cleanup once exec has already been finalized.

Issue found using a prototype static analysis tool and confirmed by code review.

(cherry picked from commit 2802952e4a07306da6ebe813ff1acacc5691851a)

Affected Software

3 affected components
Linux Linux kernel
Linux Linux kernel>=6.19<7.0.10
Linux Linux kernel=7.1-rc1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    Ensure drm_exec_fini(exec) is not called twice during drm/amdgpu userq validation (avoid the second drm_exec_fini() after collecting HMM ranges/unlock_all, since drm_exec_fini() is not idempotent and frees exec->objects).

Event History

Jun 24, 2026
CVE Published
via MITRE·04:29 PM
Data Sourced
via MITRE·04:29 PM
DescriptionSeverity
Data Sourced
via NVD·05:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via Red Hat·06:08 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

Who can exploit this issue?

The severity vector indicates local access with low privileges is required. No user interaction is required.

2

What runtime conditions are needed to trigger the vulnerable path?

The affected path requires amdgpu userq VM validation with new_addition set, followed by a failure from amdgpu_ttm_tt_get_user_pages() while processing collected HMM ranges. That error path can finalize the same drm_exec object twice.

3

How should this be remediated?

Apply a Linux kernel build containing the fix that routes this post-finalization error path directly to range cleanup. The supplied stable-kernel references identify commits c7c3ae7c01e5a0742b93cb9b40800bdd7f811e38 and 508babf310365f1107a2e8831c267c292a286818.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203