Description
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, xe_bo_set_purgeable_shrinker() 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)
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Resource Accounting Error leading to potential denial of service
Action: Apply Patch
AI Analysis

Impact

This vulnerability stems from an error in the Linux kernel’s DRM/xe subsystem where pinned buffer objects (bos) have their pages incorrectly transferred between shrinkable and purgeable categories when their purgeable state changes. The logic that updates the count unconditionally underflows the shrinker's purgeable counter and permanently inflates the shrinkable counter once the bos is unpinned. The primary impact is a corruption of kernel memory accounting, which could cause the kernel to misreport free memory, potentially leading to system instability or denial of service. The weakness, an integer underflow, is represented by CWE-193.

Affected Systems

All Linux kernel images that include the DRM/xe driver are affected, specifically those that have not yet incorporated the commit that resolved the issue (afe6bc012034123fd838328668e609bf57e46bd3). In practice, this means any actively maintained kernel version prior to the hotfix commit is vulnerable; newer releases that integrate the patch are not. The vulnerability does not target any specific vendor distribution but applies globally to kernels compiled with the DRM/xe subsystems.

Risk and Exploitability

No CVSS score appears in the available data, indicating limited publicly disclosed exploitation data. The vulnerability is not present in the CISA KEV catalog. While the potential for a local or privileged attacker to trigger the misuse of shrinker counts exists—especially if the attacker forces a VMA of a pinned bos to receive a MADV_DONTNEED—they require substantial knowledge of the kernel’s internal DRM/xe behavior and the system on which the vulnerable kernel runs. In the absence of a public exploit, the risk is considered moderate due to the low probability of successful exploitation and the lack of known active attacks. However, the impact on kernel memory accounting warrants prompt remediation.

Generated by OpenCVE AI on October 28, 2026 at 12:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that includes commit afe6bc012034123fd838328668e609bf57e46bd3 to eliminate the count underflow bug
  • If an immediate kernel upgrade is not possible, avoid using MADV_DONTNEED on virtual memory areas associated with pinned buffer objects or disable scanout buffers that remain pinned while purged
  • Monitor kernel memory usage and shrinker counters for anomalies to detect residual accounting inconsistencies

Generated by OpenCVE AI on October 28, 2026 at 12:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 13:45:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Wed, 28 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-193

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description 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, xe_bo_set_purgeable_shrinker() 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)
Title drm/xe: Don't transfer shrinker pages for pinned bos on purgeable state change
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:35:02.038Z

Reserved: 2026-09-25T10:25:14.396Z

Link: CVE-2026-99145

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:34.547

Modified: 2026-10-28T11:17:34.547

Link: CVE-2026-99145

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T13:30:20Z

Weaknesses