CVE-2026-31553: KVM: arm64: Fix the descriptor address in __kvm_at_swap_desc()
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Fix the descriptor address in __kvm_at_swap_desc()
Using "(u64 __user *)hva + offset" to get the virtual addresses of S1/S2
descriptors looks really wrong, if offset is not zero. What we want to get
for swapping is hva + offset, not hva + offset*8. ;-)
Fix it.
Security readout for executives and security teams
Plain-English summary
A Linux KVM defect on arm64 can calculate the wrong memory address while swapping virtualization descriptors. The supplied CVSS assessment indicates that a locally authenticated, low-privilege attacker could potentially cause serious confidentiality, integrity, and availability impact. The source bundle does not describe demonstrated exploitation or specific real-world outcomes.
Executive priority
Treat this as a high-priority maintenance issue for arm64 KVM infrastructure, especially where less-trusted users or workloads have local access. Accelerate vendor-supported kernel updates, but avoid declaring an emergency solely from CVSS: the supplied evidence does not establish active exploitation or quantify practical reachability.
Technical view
In __kvm_at_swap_desc(), adding offset to a u64 user pointer scaled the offset by eight. The intended address was the host virtual address plus the byte offset. This could select an incorrect Stage-1 or Stage-2 descriptor address during swapping. Referenced stable-kernel commits correct the pointer arithmetic.
Likely exposure
Exposure appears limited to arm64 Linux systems using the affected KVM functionality. The bundle identifies the Linux 6.19 line as affected, but does not clearly map every fixed release or distribution backport. Non-arm64 systems and hosts not using KVM are less likely to reach this code path.
Exploitation context
The CVSS vector indicates local access, low complexity, low privileges, no user interaction, and possible cross-scope impact. CISA KEV status is false in the supplied bundle, and no cited source reports active exploitation, public proof-of-concept availability, or a confirmed attack chain.
Researcher notes
The root cause is incorrect typed-pointer arithmetic: offset was multiplied by sizeof(u64) instead of treated as a byte offset. The bundle provides no CWE, reproducer, crash trace, affected configuration details, or exploitability analysis. Researchers should verify reachability and fixed-version mappings without assuming the CVSS worst-case impacts are demonstrated.
Mitigation direction
Apply a vendor-supported kernel containing the referenced stable fix.
Check distribution advisories for backported fixes and corrected package versions.
Prioritize arm64 virtualization hosts running Linux 6.19-series kernels.
Restrict untrusted local access to affected virtualization hosts until remediated.
Validation and detection
Inventory arm64 hosts, running kernel versions, and KVM usage.
Compare installed kernels with vendor advisories and referenced stable commits.
Confirm the corrected kernel is running after maintenance or reboot.
Review host telemetry for unexplained KVM failures or memory-related crashes.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31553 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
3Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.