In the Linux kernel, the following vulnerability has been resolved:
arm64: tlb: Fix TLBI RANGE operand
KVM/arm64 relies on TLBI RANGE feature to flush TLBs when the dirty pages are collected by VMM and the page table entries become write protected during live migration. Unfortunately, the operand passed to the TLBI RANGE instruction isn't correctly sorted out due to the commit 117940aa6e5f ("KVM: arm64: Define kvm_tlb_flush_vmid_range()"). It leads to crash on the destination VM after live migration because TLBs aren't flushed completely and some of the dirty pages are missed.
For example, I have a VM where 8GB memory is assigned, starting from 0x40000000 (1GB). Note that the host has 4KB as the base page size. In the middile of migration, kvm_tlb_flush_vmid_range() is executed to flush TLBs. It passes MAX_TLBI_RANGE_PAGES as the argument to __kvm_tlb_flush_vmid_range() and __flush_s2_tlb_range_op(). SCALE#3 and NUM#31, corresponding to MAX_TLBI_RANGE_PAGES, isn't supported by __TLBI_RANGE_NUM(). In this specific case, -1 has been returned from __TLBI_RANGE_NUM() for SCALE#3/2/1/0 and rejected by the loop in the __flush_tlb_range_op() until the variable @scale underflows and becomes -9, 0xffff708000040000 is set as the operand. The operand is wrong since it's sorted out by __TLBI_VADDR_RANGE() according to invalid @scale and @num.
Fix it by extending __TLBI_RANGE_NUM() to support the combination of SCALE#3 and NUM#31. With the changes, [-1 31] instead of [-1 30] can be returned from the macro, meaning the TLBs for 0x200000 pages in the above example can be flushed in one shoot with SCALE#3 and NUM#31. The macro TLBI_RANGE_MASK is dropped since no one uses it any more. The comments are also adjusted accordingly.
CVSS Details
- CVSS 3.1 Base Score: 8.4
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 20, 2024 |
| Suse | — | Upgrade kernel-rt_debug-develUpgrade dtb-nvidiaUpgrade kernel-docsUpgrade dtb-renesasUpgrade kselftests-kmp-azureUpgrade kernel-rt-develUpgrade kernel-debug-develUpgrade dtb-xilinxUpgrade kernel-64kb-optionalUpgrade dtb-appleUpgrade kernel-default-livepatchUpgrade kernel-azureUpgrade kernel-default-livepatch-develUpgrade dtb-sprdUpgrade gfs2-kmp-azureUpgrade kernel-64kb-develUpgrade dtb-caviumUpgrade kernel-azure-extraUpgrade kernel-symsUpgrade kernel-debug-vdsoUpgrade kernel-devel-rtUpgrade dlm-kmp-rtUpgrade dtb-hisiliconUpgrade cluster-md-kmp-rtUpgrade dtb-allwinnerUpgrade kernel-debugUpgrade kernel-default-vdsoUpgrade dtb-alteraUpgrade kernel-source-vanillaUpgrade kernel-rt_debug-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-default-optionalUpgrade dlm-kmp-defaultUpgrade kernel-rt-livepatchUpgrade kernel-defaultUpgrade cluster-md-kmp-64kbUpgrade gfs2-kmp-defaultUpgrade kernel-azure-optionalUpgrade kernel-default-baseUpgrade dtb-mediatekUpgrade dtb-socionextUpgrade kernel-64kb-extraUpgrade reiserfs-kmp-rtUpgrade kernel-develUpgrade kselftests-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade dtb-amdUpgrade ocfs2-kmp-64kbUpgrade gfs2-kmp-rtUpgrade kernel-azure-vdsoUpgrade kernel-rt_debug-vdsoUpgrade dtb-marvellUpgrade dtb-lgUpgrade dtb-freescaleUpgrade cluster-md-kmp-defaultUpgrade dtb-exynosUpgrade kernel-kvmsmall-vdsoUpgrade dtb-amazonUpgrade reiserfs-kmp-azureUpgrade kernel-rt_debugUpgrade dtb-apmUpgrade dlm-kmp-azureUpgrade kernel-rt-vdsoUpgrade kernel-default-develUpgrade kernel-azure-develUpgrade kernel-64kbUpgrade kernel-obs-qaUpgrade kernel-rt-optionalUpgrade cluster-md-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-macrosUpgrade kernel-devel-azureUpgrade kernel-kvmsmallUpgrade kernel-source-rtUpgrade dlm-kmp-64kbUpgrade kernel-syms-rtUpgrade kernel-rt-extraUpgrade kernel-zfcpdumpUpgrade kernel-docs-htmlUpgrade dtb-rockchipUpgrade kernel-rt-livepatch-develUpgrade dtb-amlogicUpgrade kernel-syms-azureUpgrade reiserfs-kmp-64kbUpgrade kselftests-kmp-64kbUpgrade kernel-source-azureUpgrade kernel-default-extraUpgrade kernel-default-base-rebuildUpgrade kselftests-kmp-defaultUpgrade kernel-obs-buildUpgrade dtb-armUpgrade ocfs2-kmp-rtUpgrade kernel-rtUpgrade kernel-kvmsmall-develUpgrade dtb-qcomUpgrade dtb-broadcomUpgrade kernel-sourceUpgrade gfs2-kmp-64kb | Dec 5, 2025 | Nov 13, 2024 |
| Ubuntu | — | Upgrade linux-image-awsUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-ibm-classicUpgrade linux-image-azureUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-azure-fdeUpgrade linux-image-kvmUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-ibmUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-lowlatency-64kUpgrade linux-image-genericUpgrade linux-image-oracle-64kUpgrade linux-image-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-intelUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-nvidia-64kUpgrade linux-image-virtualUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gkeUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-oem-24.04Upgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1007-raspi | Jul 12, 2024 | May 20, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub