CVE Catalog

CVE-2026-68163

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

6th percentile - higher than 6% of all known CVEs

Summary

A vulnerability was found in the Linux kernel's handling of device-private PMD entries during rmap walks. The bug causes these entries to be incorrectly treated as migration entries, potentially leading to memory corruption. Additionally, a race condition with PMD splitting can occur, worsening the issue.

Risk Assessment

The vulnerability may lead to kernel memory corruption, potentially causing system crashes, data loss, or local privilege escalation. Organizations using Linux systems with device-private memory (e.g., GPUs) are at risk of instability and security breaches.

Recommendation

Immediately update the Linux kernel to a version containing the fix (the commit resolving this issue). Monitor vendor security advisories and apply the patch urgently, especially in production environments.

Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: mm/page_vma_mapped: fix device-private PMD handling Commit 65edfda6f3f2 ("mm/rmap: extend rmap and migration support device-private entries") introduced the concept of device-private PMD entries, but did not correctly update the rmap walk code to account for them. As a result, when page_vma_mapped_walk() encounters device-private PMD entries, it takes no action other than to acquire the PMD lock and exit. However this is highly problematic for two reasons - firstly, device private entries possess a PFN so check_pmd() needs to be called to ensure an overlapping PFN range. Secondly, and more importantly, if PVMW_MIGRATION is set the caller assumes the returned entry is a migration entry, resulting in memory corruption when the caller tries to interpret the device private entry as such. In addition, commit 146287290023 ("mm/huge_memory: implement device-private THP splitting") allowed device private PMDs to be split like THP mappings, but again did not update this code path. As a result, we might race a PMD split prior to acquiring the PMD lock. This patch addresses all of these issues by invoking check_pmd(), ensuring PMVW_MIGRATION is not set and checks whether a split raced us we do for PMD THP and migration entries. Instead of checking for a subset of the cases after taking the pmd_lock(), put device-private along with pmd_trans_huge() and pmd_is_migration_entry(). Also remove thp_migration_supported() as it is already guarded by pmd_is_migration_entry(). [[email protected]: fix Raspberry Pi 1 build, per David]

Vulnerability data from NVD (NIST) · CISA KEV · EPSS