GHSA-h9hg-3wv2-x6j7HighCVSS 7.8

In the Linux kernel, the following vulnerability has been resolved: arm64: tlb: Flush walk cache...

Published
July 19, 2026
Last Modified
July 20, 2026

🔗 CVE IDs covered (1)

📋 Description

In the Linux kernel, the following vulnerability has been resolved:

arm64: tlb: Flush walk cache when unsharing PMD tables

When huge_pmd_unshare() is called to unshare a PMD table, the tlb_unshare_pmd_ptdesc() function sets tlb->unshared_tables=true but the aarch64 tlb_flush() only checked tlb->freed_tables to determine whether to use TLBF_NONE (vae1is, invalidates walk cache) or TLBF_NOWALKCACHE (vale1is, leaf-only).

This caused the stale PMD page table entry to remain in the walk cache after unshare, potentially leading to incorrect page table walks.

Fix by including unshared_tables in the check, so that when unsharing tables, TLBF_NONE is used and the walk cache is properly invalidated.

Here is the detailed distinction between vae1is and vale1is:

| Instruction Combination | Actual Invalidation Scope | | ------------------------ | --------------------------------------------------| | VAE1IS + TTL=0 | All entries at all levels (full invalidation) | | VAE1IS + TTL=2 (L2) | Non-leaf at Level 0/1 + leaf at Level 2 | | VALE1IS + TTL=0 | Leaf entries at all levels (non-leaf not cleared) | | VALE1IS + TTL=2 (L2) | Leaf entry at Level 2 only |

🔗 References (10)