CVE-2026-97900
Description
In the Linux kernel, the following vulnerability has been resolved: drm/drm_exec: fix up contended obj when num_objects is 0 drm_exec_prepare_array() silently returns success without calling drm_exec_lock_contended() when num_objects is zero. This breaks the invariant upheld by drm_exec_lock_obj(), where every entry point into the locking sequence must first attempt to lock any previously contended object before proceeding. Drivers that chain multiple drm_exec_prepare_array() calls per drm_exec_until_all_locked() iteration (e.g. amdgpu's userq signal/wait ioctls, which prepare separate read and write BO arrays) can pass an empty array for one of the two calls. If contention is hit while preparing the non-empty array, exec->contended is set and the loop retries; on retry, the empty-array call preceding it is a no-op that never clears exec->contended, so drm_exec_retry_on_contention() immediately jumps back to the top of the loop without ever reaching the call that would resolve the contention. This spins forever. Fix it by having drm_exec_prepare_array() call drm_exec_lock_contended() directly when num_objects is zero, so a pending contended object dont loop infinitely.
How to fix
- Linux Linux506cfed91e50cc8055799480a2fde5a18f63a21c, 831cd124ce99c3e61266bed30519d52f7c26abed, f3e74866018dab793ebee1fdf0ef34f7271d1f8c, a565022c02f218ec9789c2baf4690792e7a48cbb, 159720704d9d652b64390c11fb971e15b0a78d23 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 09593216bff15866f95c8ad406cb7fdcec1ee40a ≤ v < 506cfed91e50cc8055799480a2fde5a18f63a21c, 09593216bff15866f95c8ad406cb7fdcec1ee40a ≤ v < 831cd124ce99c3e61266bed30519d52f7c26abed, 09593216bff15866f95c8ad406cb7fdcec1ee40a ≤ v < f3e74866018dab793ebee1fdf0ef34f7271d1f8c, 09593216bff15866f95c8ad406cb7fdcec1ee40a ≤ v < a565022c02f218ec9789c2baf4690792e7a48cbb, 09593216bff15866f95c8ad406cb7fdcec1ee40a ≤ v < 159720704d9d652b64390c11fb971e15b0a78d23, 6.6 | 506cfed91e50cc8055799480a2fde5a18f63a21c, 831cd124ce99c3e61266bed30519d52f7c26abed, f3e74866018dab793ebee1fdf0ef34f7271d1f8c, a565022c02f218ec9789c2baf4690792e7a48cbb, 159720704d9d652b64390c11fb971e15b0a78d23 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.