CVE-2026-89917
Description
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Handle VNCR TLB invalidation race with vcpu_put() VNCR unmapping While VNCR TLB invalidation always occurs under the MMU lock, vcpu_put() doesn't, while it unmaps the VNCR page. The problem is that the invalidation evaluates vncr_tlb::cpu to decide whether an unmapping needs to take place (cpu != -1) before performing it. On the other hand, this_cpu_reset_vncr_fixmap() unconditionally unmaps if L1_VNCR_MAPPED is set. These two obviously can race, with a TOCTOU pattern on the TLBI path, and a BUG_ON() on the vcpu_put() path. And the two can end-up calling vncr_fixmap(-1), with extra lethal effects. Move the reset of vncr_tlb::cpu to -1 to a common function, and make this update atomic so that only a single thread can reset the field and perform the corresponding unmap. The vcpu_put() still need to unconditionally unmap the current VNCR to close another ugly race. Finally, the assignment of vncr_tlb::cpu is moved to be kept in sync with the actual mapping, similar to L1_VNCR_MAPPED being set.
How to fix
- Linux Linux5cbd8761d001c11ada73b1753d772c4745a70e72, 9065c1261f8a05c6a7a2d90048c7c0665ab2896d, 38640bc32be3fcf9526d477155bc19d3f146231f or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 7270cc9157f474dfc46750a34c9d7defc686b2eb ≤ v < 5cbd8761d001c11ada73b1753d772c4745a70e72, 7270cc9157f474dfc46750a34c9d7defc686b2eb ≤ v < 9065c1261f8a05c6a7a2d90048c7c0665ab2896d, 7270cc9157f474dfc46750a34c9d7defc686b2eb ≤ v < 38640bc32be3fcf9526d477155bc19d3f146231f, 6.16 | 5cbd8761d001c11ada73b1753d772c4745a70e72, 9065c1261f8a05c6a7a2d90048c7c0665ab2896d, 38640bc32be3fcf9526d477155bc19d3f146231f |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.