CVE-2026-98510
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
drm/xe/vm: nuke PTs only after unlinking contested VMAs
En xe_vm_close_and_put(), las VMAs de BO externos se encolan en la lista contested para su destrucción diferida mediante xe_vma_destroy_unlocked(). Sin embargo, xe_vm_pt_destroy() se invocaba antes de procesar las VMAs contested, destruyendo vm->pt_root mientras esas VMAs seguían enlazadas a sus respectivos objetos de búfer (vm_bo->list.gpuva).
Si un hilo concurrente desaloja uno de esos objetos de búfer compartidos, xe_bo_trigger_rebind(), que solo mantiene bo->resv, recorre las VMAs del BO y, en modo fault, llama a xe_vm_invalidate_vma() -> xe_pt_zap_ptes().
Leer descripción completaMostrar menos
Como vm->pt_root[tile->id] ya es NULL, al desreferenciar pt->level se produce una desreferencia de puntero NULL.
Se corrige diferiendo xe_vm_free_scratch() y xe_vm_pt_destroy() hasta que todas las VMAs contested hayan sido desenlazadas y destruidas.
El usuario informa de una desreferencia de puntero NULL en xe_pt_zap_ptes(), que podría explicarse por esta condición de carrera.
(cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Traducción automática del texto original de NVD (en inglés).
CVSS
NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.20 %
- Percentil entre todas las CVEs puntuadas
- 9
- Fecha de la puntuación
- 20/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
Referencias
Mostrar las 4 referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-98510",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "b06d47be7c83165d3b3e45e1d5f9520b79c7f5cc",
"lessThan": "70fddc065ac80845ffd33095b3635d59883cf7e6",
"versionType": "git"
},
{
"status": "affected",
"version": "b06d47be7c83165d3b3e45e1d5f9520b79c7f5cc",
"lessThan": "ba678c2b02e0d36b53deb5a6d5e5ea044d36def7",
"versionType": "git"
},
{
"status": "affected",
"version": "b06d47be7c83165d3b3e45e1d5f9520b79c7f5cc",
"lessThan": "bddaa5e4094c134452c29e20a26c4718827e4cb1",
"versionType": "git"
},
{
"status": "affected",
"version": "b06d47be7c83165d3b3e45e1d5f9520b79c7f5cc",
"lessThan": "24a22fb3c731474b68e986af6804db450fb88617",
"versionType": "git"
}
],
"programFiles": [
"drivers/gpu/drm/xe/xe_vm.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "6.8"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.8",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.55",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/gpu/drm/xe/xe_vm.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:02.203",
"references": [
{
"url": "https://git.kernel.org/stable/c/24a22fb3c731474b68e986af6804db450fb88617",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/70fddc065ac80845ffd33095b3635d59883cf7e6",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/ba678c2b02e0d36b53deb5a6d5e5ea044d36def7",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/bddaa5e4094c134452c29e20a26c4718827e4cb1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/vm: nuke PTs only after unlinking contested VMAs\n\nIn xe_vm_close_and_put(), external-BO VMAs are queued on the contested\nlist for deferred destruction via xe_vma_destroy_unlocked(). However,\nxe_vm_pt_destroy() was previously invoked before processing contested\nVMAs, destroying vm->pt_root while those VMAs were still linked to their\nrespective buffer objects (vm_bo->list.gpuva).\n\nIf a concurrent thread evicts one of those shared buffer objects,\nxe_bo_trigger_rebind() holding only bo->resv walks the BO's VMAs and, in\nfault mode, calls xe_vm_invalidate_vma() -> xe_pt_zap_ptes(). Because\nvm->pt_root[tile->id] is already NULL, dereferencing pt->level causes a\nNULL ptr deref.\n\nFix this by deferring xe_vm_free_scratch() and xe_vm_pt_destroy() until\nafter all contested VMAs have been unlinked and destroyed.\n\nUser is reporting hitting a NULL ptr deref in xe_pt_zap_ptes(), which\ncould be explained by this race.\n\n(cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)"
}
],
"lastModified": "2026-10-19T10:19:04.493",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}