7.8
HIGH CVSS 3.1
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
Affected Products

The following products are affected by CVE-2026-63875 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel
CVSS Scores
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
Score Version Severity Vector Exploitability Score Impact Score Source
CVSS 3.1 HIGH 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Solution
Apply kernel updates to ensure TLB walk cache invalidation during PMD table unsharing.
  • Update the Linux kernel to the patched version.
  • Verify TLB cache invalidation logic.
  • Test page table walk integrity.
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
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.