CVE-2026-99145 (GCVE-0-2026-99145)
Vulnerability from cvelistv5
Published
2026-10-28 10:35
Modified
2026-10-28 10:35
Severity ?
VLAI Severity ?
EPSS score ?
Summary
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)
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_bo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "135e998dd1e66b8854db7bd356b6563baf8b9d51",
"status": "affected",
"version": "536a2ead3a8f2048643da3e8340a4d73fdf71903",
"versionType": "git"
},
{
"lessThan": "ffbfd3f98f4393e91dffce3a46ccb7cf5329cf2f",
"status": "affected",
"version": "536a2ead3a8f2048643da3e8340a4d73fdf71903",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_bo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.1"
},
{
"lessThan": "7.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.13",
"versionStartIncluding": "7.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "7.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe: Don\u0027t transfer shrinker pages for pinned bos on purgeable state change\n\nPinned bos have their pages removed from the shrinker\u0027s shrinkable /\npurgeable counts on pin, and added back on unpin according to the\nbo\u0027s purgeable state at that time.\n\nHowever, xe_bo_set_purgeable_shrinker() unconditionally transfers\npages between the shrinkable and purgeable counts. If the purgeable\nstate of a pinned bo changes, for example by userspace madvising\nDONTNEED on a VMA of a bo that is also pinned as a scanout buffer,\nthis underflows one count and, after unpin, leaves the other one\npermanently inflated.\n\nOnly update the purgeable flag for pinned bos, and leave the page\naccounting to unpin.\n\n(cherry picked from commit afe6bc012034123fd838328668e609bf57e46bd3)"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-28T10:35:02.038Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/135e998dd1e66b8854db7bd356b6563baf8b9d51"
},
{
"url": "https://git.kernel.org/stable/c/ffbfd3f98f4393e91dffce3a46ccb7cf5329cf2f"
}
],
"title": "drm/xe: Don\u0027t transfer shrinker pages for pinned bos on purgeable state change",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99145",
"datePublished": "2026-10-28T10:35:02.038Z",
"dateReserved": "2026-09-25T10:25:14.396Z",
"dateUpdated": "2026-10-28T10:35:02.038Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…