CVE-2026-98639
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
KVM: riscv: Corregir el orden de actualización de las entradas de hfence de NACL
La especificación SBI v3.0 (sección 15.1.2) exige que una entrada de HFENCE anidada se rellene de la siguiente manera: 1) buscar una entrada no utilizada con Config.Pending == 0 2) actualizar las palabras Page_Number y Page_Count 3) actualizar la palabra Config con Config.Pending activado
__kvm_riscv_nacl_hfence() escribe primero la palabra Config, de modo que la implementación de SBI (o el hardware NACL) puede observar una entrada pendiente con valores de pnum y pcount heredados del uso anterior de esa entrada, lo que provoca rangos de vaciado de TLB incorrectos.
Leer descripción completaMostrar menos
Escribir primero pnum y pcount y la palabra Config al final. Dado que el consumidor es un agente externo sobre memoria compartida coherente, usar WRITE_ONCE() para impedir que el compilador reordene las escrituras y smp_wmb() para que las palabras de parámetros sean visibles globalmente antes de activar el bit Pending.
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.17 %
- Percentil entre todas las CVEs puntuadas
- 5
- 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
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-98639",
"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": "d466c19cead5904d4d5d92adb2b213b411d3b849",
"lessThan": "d6de766d8d26d71b714f548192099112def50a9c",
"versionType": "git"
},
{
"status": "affected",
"version": "d466c19cead5904d4d5d92adb2b213b411d3b849",
"lessThan": "6da466502621381fa88a6684290923d25c559266",
"versionType": "git"
},
{
"status": "affected",
"version": "d466c19cead5904d4d5d92adb2b213b411d3b849",
"lessThan": "b3d346838ec65fac7fd83f5dbcedd13cadfffddb",
"versionType": "git"
}
],
"programFiles": [
"arch/riscv/kvm/nacl.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.13"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.13",
"versionType": "semver"
},
{
"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": [
"arch/riscv/kvm/nacl.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:17.020",
"references": [
{
"url": "https://git.kernel.org/stable/c/6da466502621381fa88a6684290923d25c559266",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/b3d346838ec65fac7fd83f5dbcedd13cadfffddb",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d6de766d8d26d71b714f548192099112def50a9c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: riscv: Fix NACL hfence entry update order\n\nThe SBI v3.0 specification (section 15.1.2) requires a nested HFENCE\nentry to be populated as follows:\n1) find an unused entry with Config.Pending == 0\n2) update the Page_Number and Page_Count words\n3) update the Config word with Config.Pending set\n\n__kvm_riscv_nacl_hfence() writes the Config word first, so the SBI\nimplementation (or NACL hardware) can observe a pending entry with\npnum/pcount values left over from the previous use of that entry,\nresulting in incorrect TLB flush ranges.\n\nWrite pnum and pcount first and the Config word last. Since the\nconsumer is an external agent on coherent shared memory, use\nWRITE_ONCE() to stop the compiler from reordering the stores and\nsmp_wmb() to make the parameter words globally visible before the\nPending bit is set."
}
],
"lastModified": "2026-10-19T10:19:28.133",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}