FKIE_CVE-2026-98310
Vulnerability from fkie_nvd - Published: 2026-10-06 09:18 - Updated: 2026-10-06 09:18
Severity
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/shrinker: Take a runtime PM ref before shrinking non-system memory
__xe_shrinker_walk() walks the SYSTEM and TT LRUs without a runtime PM
reference. Shrinking a bo outside system memory invalidates its GPU
mappings, which needs the device resumed, so while it is runtime
suspended the page table zap trips an assert and the TLB invalidation
returns -ENODEV:
WARNING: drivers/gpu/drm/xe/xe_bo.c:770 at xe_bo_move_notify+0x1fc/0x450 [xe]
xe_bo_shrink+0x20f/0x2b0 [xe]
__xe_shrinker_walk+0x174/0x410 [xe]
xe_shrinker_scan+0x10c/0x1e0 [xe]
do_shrink_slab+0x176/0x7e0
drop_caches_sysctl_handler+0x9c/0xf0
Take a reference before walking a memory type other than XE_PL_SYSTEM
and stop there if it cannot be acquired. Reuse the shrinker's existing
acquire path, which resumes the device directly where reclaim allows
that and otherwise queues the PM worker for a later scan. Stop the walk
once the scan target is met, so a satisfied scan does not wake the
device. System memory is still reclaimed while the device is suspended.
Gate this on xe_device_is_l2_flush_optimized(), the same condition under
which xe_bo_trigger_rebind() issues the invalidation for a non-fault-mode
vm, so reclaim is unaffected elsewhere. The System CCS copy already has
its own reference in xe_bo_shrink().
Only a non-fault-mode vm can reach this, since a fault-mode vm requires
LR mode and that holds a runtime PM reference for the vm's lifetime.
Reproduced with igt@xe_madvise@dontneed-before-exec while the GPU is
runtime suspended.
v2: simplify needs_rpm check. (Matt)
retarget Fixes tag since the issue occurs with the non-fault-mode
path added by 4e7ebff69aed.
v3: handle this in xe_shrinker.c instead of xe_bo.c (Thomas)
v4: stop the walk once the scan target is met. (Sashiko)
v5: rebase on the freed page accounting fix. (Sashiko)
v6: reuse the shrinker acquire path so runtime pm can be resumed
directly instead of always queueing a worker. (Thomas)
v7: replace xe_pm_runtime_put() with xe_shrinker_runtime_pm_put(). (Thomas)
(cherry picked from commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e)
References
Impacted products
| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_shrinker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b7f4d2588b1342bb190c04b3d7a32560f206c74c",
"status": "affected",
"version": "4e7ebff69aed345f65f590a17b3119c0cb5eadde",
"versionType": "git"
},
{
"lessThan": "985862be16c7e4da808c51f393d631fb60c0be5c",
"status": "affected",
"version": "4e7ebff69aed345f65f590a17b3119c0cb5eadde",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/xe/xe_shrinker.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.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc4",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/shrinker: Take a runtime PM ref before shrinking non-system memory\n\n__xe_shrinker_walk() walks the SYSTEM and TT LRUs without a runtime PM\nreference. Shrinking a bo outside system memory invalidates its GPU\nmappings, which needs the device resumed, so while it is runtime\nsuspended the page table zap trips an assert and the TLB invalidation\nreturns -ENODEV:\n\n WARNING: drivers/gpu/drm/xe/xe_bo.c:770 at xe_bo_move_notify+0x1fc/0x450 [xe]\n xe_bo_shrink+0x20f/0x2b0 [xe]\n __xe_shrinker_walk+0x174/0x410 [xe]\n xe_shrinker_scan+0x10c/0x1e0 [xe]\n do_shrink_slab+0x176/0x7e0\n drop_caches_sysctl_handler+0x9c/0xf0\n\nTake a reference before walking a memory type other than XE_PL_SYSTEM\nand stop there if it cannot be acquired. Reuse the shrinker\u0027s existing\nacquire path, which resumes the device directly where reclaim allows\nthat and otherwise queues the PM worker for a later scan. Stop the walk\nonce the scan target is met, so a satisfied scan does not wake the\ndevice. System memory is still reclaimed while the device is suspended.\n\nGate this on xe_device_is_l2_flush_optimized(), the same condition under\nwhich xe_bo_trigger_rebind() issues the invalidation for a non-fault-mode\nvm, so reclaim is unaffected elsewhere. The System CCS copy already has\nits own reference in xe_bo_shrink().\n\nOnly a non-fault-mode vm can reach this, since a fault-mode vm requires\nLR mode and that holds a runtime PM reference for the vm\u0027s lifetime.\n\nReproduced with igt@xe_madvise@dontneed-before-exec while the GPU is\nruntime suspended.\n\nv2: simplify needs_rpm check. (Matt)\n retarget Fixes tag since the issue occurs with the non-fault-mode\n path added by 4e7ebff69aed.\nv3: handle this in xe_shrinker.c instead of xe_bo.c (Thomas)\nv4: stop the walk once the scan target is met. (Sashiko)\nv5: rebase on the freed page accounting fix. (Sashiko)\nv6: reuse the shrinker acquire path so runtime pm can be resumed\n directly instead of always queueing a worker. (Thomas)\nv7: replace xe_pm_runtime_put() with xe_shrinker_runtime_pm_put(). (Thomas)\n\n(cherry picked from commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e)"
}
],
"id": "CVE-2026-98310",
"lastModified": "2026-10-06T09:18:22.440",
"metrics": {},
"published": "2026-10-06T09:18:22.440",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/985862be16c7e4da808c51f393d631fb60c0be5c"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/b7f4d2588b1342bb190c04b3d7a32560f206c74c"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Received"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…