CVE-2026-89915
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Remove VM-wide VNCR mapping counter
The global VNCR mapping counter is used to decide whether an L1 provided VNCR page is mapped in L0 on any CPU at the point of dealing with a TLB invalidation. It is incremented when a mapping is made in the fixmap, and decremented when unmapped.
As it turns out, this tracking has several flaws:
Given that this tracking fails at delivering the minimum guarantees that are required and is only a performance optimisation, remove it completely.
Detalles técnicos trazas, registros y código del informe original
- we are trying to invalidate TLBs, and the mapping is only an opportunistic consequence of the TLB. Checking this counter to decide whether a TLB needs to be invalidated may result in missed invalidations. - an L1 vcpu invalidating its own TLB (a very likely case) will not succeed in invalidating the VNCR pseudo TLB because that page is not mapped in L0 at this stage.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- Puntuación base: 9.3
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.19%
- Percentil entre todas las CVEs puntuadas: 8
- Fecha de la puntuación: 5/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).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1068Exploitation for Privilege Escalationprivilege escalation75 % - Impacto principal
T1499.004Application or System Exploitationimpact65 %
Vulnerabilidad local en kernel Linux (AV:L, PR:N) que permite evasión de invalidaciones TLB en nested virtualization; el impacto crítico (A:H) sugiere negación de servicio por fallo en sincronización de memoria caché.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
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-89915",
"cveTags": [],
"metrics": {
"cvssMetricV31": [
{
"type": "Secondary",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 9.3,
"attackVector": "LOCAL",
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 6,
"exploitabilityScore": 2.5
}
]
},
"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": "4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929",
"lessThan": "5453b85c7ebb605febac3df42021f9471663f051",
"versionType": "git"
},
{
"status": "affected",
"version": "4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929",
"lessThan": "87c2bbf189829dce4aaada8f82e3d54ccc037976",
"versionType": "git"
},
{
"status": "affected",
"version": "4ffa72ad8f37e73bbb6c0baa88557bcb4fd39929",
"lessThan": "c55bc773b6e814406658fae7dc5c15f639ed816e",
"versionType": "git"
}
],
"programFiles": [
"arch/arm64/include/asm/kvm_host.h",
"arch/arm64/kvm/hyp/vhe/switch.c",
"arch/arm64/kvm/nested.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.16"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.16",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"arch/arm64/include/asm/kvm_host.h",
"arch/arm64/kvm/hyp/vhe/switch.c",
"arch/arm64/kvm/nested.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-16T11:17:00.553",
"references": [
{
"url": "https://git.kernel.org/stable/c/5453b85c7ebb605febac3df42021f9471663f051",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/87c2bbf189829dce4aaada8f82e3d54ccc037976",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/c55bc773b6e814406658fae7dc5c15f639ed816e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: Remove VM-wide VNCR mapping counter\n\nThe global VNCR mapping counter is used to decide whether an L1\nprovided VNCR page is mapped in L0 on any CPU at the point of\ndealing with a TLB invalidation. It is incremented when a mapping\nis made in the fixmap, and decremented when unmapped.\n\nAs it turns out, this tracking has several flaws:\n\n- we are trying to invalidate TLBs, and the mapping is only an\n opportunistic consequence of the TLB. Checking this counter to\n decide whether a TLB needs to be invalidated may result in missed\n invalidations.\n\n- an L1 vcpu invalidating its own TLB (a very likely case) will not\n succeed in invalidating the VNCR pseudo TLB because that page is\n not mapped in L0 at this stage.\n\nGiven that this tracking fails at delivering the minimum guarantees\nthat are required and is only a performance optimisation, remove it\ncompletely."
}
],
"lastModified": "2026-09-16T15:18:17.760",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}