CVE-2026-98638
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve() pkvm_vcpu_init_sve() clamps only the upper bound of the host-provided sve_max_vl, so an invalid vector length reaches sve_state_size_from_vl() and the WARN_ON() there, which is fatal at EL2. The existing !sve_state_size test rejects such a length, but only after the macro has run. Check sve_vl_valid() before deriving the state size. A valid length cannot yield a zero size, so the !sve_state_size test goes with it.
Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:17:16.920000
Last modified
2026-10-19 10:19:28.037000
View original CVE JSON
{
"id": "CVE-2026-98638",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-10-18T16:17:16.920",
"lastModified": "2026-10-19T10:19:28.037",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve()\n\npkvm_vcpu_init_sve() clamps only the upper bound of the host-provided\nsve_max_vl, so an invalid vector length reaches sve_state_size_from_vl()\nand the WARN_ON() there, which is fatal at EL2. The existing\n!sve_state_size test rejects such a length, but only after the macro has\nrun.\n\nCheck sve_vl_valid() before deriving the state size. A valid length\ncannot yield a zero size, so the !sve_state_size test goes with it."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"arch/arm64/kvm/hyp/nvhe/pkvm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "5db1bef933427aa467ad89c7b695a84a6b4afe16",
"lessThan": "faf66e55e87498ab4bf88cdf9a629e61b3f2d3bc",
"versionType": "git",
"status": "affected"
},
{
"version": "5db1bef933427aa467ad89c7b695a84a6b4afe16",
"lessThan": "bae3e4493046de4fefa15f809d9b8dc114e84a3d",
"versionType": "git",
"status": "affected"
},
{
"version": "5db1bef933427aa467ad89c7b695a84a6b4afe16",
"lessThan": "2a2eb10795a1e495aebc7f829ccecb72c05b4fd9",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"arch/arm64/kvm/hyp/nvhe/pkvm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "6.16",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.16",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.55",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.9",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/2a2eb10795a1e495aebc7f829ccecb72c05b4fd9",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/bae3e4493046de4fefa15f809d9b8dc114e84a3d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/faf66e55e87498ab4bf88cdf9a629e61b3f2d3bc",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}