UBUNTU-CVE-2026-99145: Medium severity vulnerability
In the Linux kernel, the following vulnerability has been resolved: drm/xe: Don't transfer shrinker pages for pinned bos on purgeable state change Pinned bos have their pages removed from the shrinker's shrinkable / purgeable counts on pin, and added back on unpin according to the bo's purgeable state at that time. However, xebosetpurgeableshrinker() unconditionally transfers pages between the shrinkable and purgeable counts. If the purgeable state of a pinned bo changes, for example by userspace madvising DONTNEED on a VMA of a bo that is also pinned as a scanout buffer, this underflows one count and, after unpin, leaves the other one permanently inflated. Only update the purgeable flag for pinned bos, and leave the page accounting to unpin. (cherry picked from commit afe6bc012034123fd838328668e609bf57e46bd3)
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel drm/xeto a version that resolves this vulnerability.Patch afe6bc012034123fd838328668e609bf57e46bd3
Event History
Frequently Asked Questions
Which workloads are most likely to trigger this issue?
Workloads that change the purgeable state of a pinned buffer object are affected. The described example is userspace issuing MADV_DONTNEED on a VMA for a buffer object that is also pinned as a scanout buffer.
What is the effect when the condition is triggered?
The shrinker page accounting can underflow one of its counters. When the buffer object is later unpinned, the other counter can remain permanently inflated.