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

mm/madvise: skip device-private PMDs in cold and pageout walks

madvise_cold_or_pageout_pte_range() takes pmd_trans_huge_lock(), whose
pmd_is_huge() check returns true for a device-private PMD. The subsequent
!pmd_present() branch has a VM_BUG_ON() asserting migration is the only
allowed non-present case; a device-private PMD trips it.

Skip device-private PMDs in that non-present branch and continue to
huge_unlock before calling pmd_folio(). Downgrade the check to
VM_WARN_ON_ONCE() so an unexpected PMD softleaf logs a warning rather than
panicking. Drop the thp_migration_supported() guard: it expands to
IS_ENABLED(CONFIG_ARCH_SUPPORTS_PMD_SOFTLEAF), and both
pmd_is_migration_entry() and pmd_is_device_private_entry() already return
false when that config is not selected, so the guard suppresses only the
case where the warning would already be silent.

Potential trigger: an HMM-based GPU driver races with
madvise(MADV_COLD)/MADV_PAGEOUT: pmd_trans_huge(*pmd) reads true, then
migrate_vma_pages() flips the PMD to a device-private entry before the PMD
lock is acquired.
Published: 2026-09-24
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Kernel Crash causing Denial of Service
Action: Update Kernel
AI Analysis

Impact

The vulnerability resides in the Linux kernel memory‑management subsystem. During a madvise cold or pageout walk, the code incorrectly treats device‑private page‑middle‑directory entries, causing a VM_BUG_ON assertion that crashes the kernel. As a result an attacker that can trigger the race described can bring the entire system down, denying all services on the machine.

Affected Systems

The flaw affects all versions of the Linux kernel that have not included the patch in commit 5c0d7b658cda62cd17cb3652783386d5608030ef. It is exercised by GPU drivers that use heterogeneous memory management (HMM) and invoke madvise with MADV_COLD or MADV_PAGEOUT. The affected path requires local code execution and typically relies on a compromised or malicious driver.

Risk and Exploitability

No CVSS score or EPSS data is supplied, and the vulnerability is not listed in the CISA KEV catalog. The severity of a kernel panic is obvious, though exploitation is constrained by the need for a GPU‑driver race condition; an attacker would likely need privileged access or a compromised driver to trigger the fault. The risk remains high, but the attack vector is inferred to be local code execution via an HMM‑based GPU driver.

Generated by OpenCVE AI on September 25, 2026 at 11:00 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes commit 5c0d7b658cda62cd17cb3652783386d5608030ef or later.
  • If an upgrade is not immediately possible, disable or uninstall GPU drivers that use HMM until the patch is applied, and avoid using MADV_COLD or MADV_PAGEOUT in that environment.
  • When the patch cannot be applied soon, monitor dmesg or kernel log output for VM_BUG_ON messages such as "migration is the only allowed non‑present case" to detect potential exploitation attempts.

Generated by OpenCVE AI on September 25, 2026 at 11:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Thu, 24 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/madvise: skip device-private PMDs in cold and pageout walks madvise_cold_or_pageout_pte_range() takes pmd_trans_huge_lock(), whose pmd_is_huge() check returns true for a device-private PMD. The subsequent !pmd_present() branch has a VM_BUG_ON() asserting migration is the only allowed non-present case; a device-private PMD trips it. Skip device-private PMDs in that non-present branch and continue to huge_unlock before calling pmd_folio(). Downgrade the check to VM_WARN_ON_ONCE() so an unexpected PMD softleaf logs a warning rather than panicking. Drop the thp_migration_supported() guard: it expands to IS_ENABLED(CONFIG_ARCH_SUPPORTS_PMD_SOFTLEAF), and both pmd_is_migration_entry() and pmd_is_device_private_entry() already return false when that config is not selected, so the guard suppresses only the case where the warning would already be silent. Potential trigger: an HMM-based GPU driver races with madvise(MADV_COLD)/MADV_PAGEOUT: pmd_trans_huge(*pmd) reads true, then migrate_vma_pages() flips the PMD to a device-private entry before the PMD lock is acquired.
Title mm/madvise: skip device-private PMDs in cold and pageout walks
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-24T15:10:40.487Z

Reserved: 2026-09-17T16:02:15.094Z

Link: CVE-2026-93217

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T16:17:16.790

Modified: 2026-09-24T16:17:16.790

Link: CVE-2026-93217

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T11:15:05Z

Weaknesses