CVE-2026-63875
arm64: tlb: Flush walk cache when unsharing PMD tables
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 |
INFO
Published Date :
July 19, 2026, 4:17 p.m.
Last Modified :
July 27, 2026, 5:44 p.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel to the patched version.
- Verify TLB cache invalidation logic.
- Test page table walk integrity.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-63875.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-63875 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-63875
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-63875 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-63875 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 20, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 19, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6495204f8219a57859669d618b25d06176d5a872', 'lessThan': 'dced308d7d6a0de1c09d2058f38f1aaaf5cbb914', 'versionType': 'git'}, {'status': 'affected', 'version': 'ce4cf24761467756462c0e1dbe4a5e9c9eb520fc', 'lessThan': '47490bbb05c8c0e09cc3cfd237d8934ffc340583', 'versionType': 'git'}, {'status': 'affected', 'version': 'daa6707b71a2da23a82979fa21f788aeb706f1a2', 'lessThan': '0199c9d57861f17b556b6cba1f765c7cce79745b', 'versionType': 'git'}, {'status': 'affected', 'version': 'ff37dd18ce7739a26aab0cc2d31006a45e6bde63', 'lessThan': 'd766a49d9b55705c4737cd8bb5d3faa2d31330fd', 'versionType': 'git'}, {'status': 'affected', 'version': 'da06bb0ca45b1ca6f1ab55023e34e61a520337f3', 'lessThan': '8ca7284da0e67b3e71d90ec17f08286774245ad9', 'versionType': 'git'}, {'status': 'affected', 'version': '9b671f6f432be07c0ddd66e437d6d0e0db684f83', 'lessThan': 'fe93e907b1af03cc229a80aa64a570a103d2b279', 'versionType': 'git'}, {'status': 'affected', 'version': '8ce720d5bd91e9dc16db3604aa4b1bf76770a9a1', 'lessThan': '48125cd9c55cbe297b59fd1f9bda48b0960bd181', 'versionType': 'git'}, {'status': 'affected', 'version': '8ce720d5bd91e9dc16db3604aa4b1bf76770a9a1', 'lessThan': 'c2ff4764e03e7a8d758352f4aceb8fe1be6ac971', 'versionType': 'git'}, {'status': 'affected', 'version': '5.10.253', 'lessThan': '5.10.259', 'versionType': 'semver'}, {'status': 'affected', 'version': '5.15.203', 'lessThan': '5.15.210', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.1.167', 'lessThan': '6.1.176', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.6.127', 'lessThan': '6.6.143', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.12.74', 'lessThan': '6.12.93', 'versionType': 'semver'}, {'status': 'affected', 'version': '6.18.13', 'lessThan': '6.18.35', 'versionType': 'semver'}], 'programFiles': ['arch/arm64/include/asm/tlb.h'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.19'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.19', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.259', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.210', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.176', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.143', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.93', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.35', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.12', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['arch/arm64/include/asm/tlb.h'], 'defaultStatus': 'affected'}] Added 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 | Added Reference https://git.kernel.org/stable/c/0199c9d57861f17b556b6cba1f765c7cce79745b Added Reference https://git.kernel.org/stable/c/47490bbb05c8c0e09cc3cfd237d8934ffc340583 Added Reference https://git.kernel.org/stable/c/48125cd9c55cbe297b59fd1f9bda48b0960bd181 Added Reference https://git.kernel.org/stable/c/8ca7284da0e67b3e71d90ec17f08286774245ad9 Added Reference https://git.kernel.org/stable/c/c2ff4764e03e7a8d758352f4aceb8fe1be6ac971 Added Reference https://git.kernel.org/stable/c/d766a49d9b55705c4737cd8bb5d3faa2d31330fd Added Reference https://git.kernel.org/stable/c/dced308d7d6a0de1c09d2058f38f1aaaf5cbb914 Added Reference https://git.kernel.org/stable/c/fe93e907b1af03cc229a80aa64a570a103d2b279