Vulnerability · Published Sep 16, 2026 · Assigned by Linux

CVE-2026-89805drm/pagemap: Fix folio allocation fallback and use-after-put

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 6% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.2%top 94.2% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: drm/pagemap: Fix folio allocation fallback and use-after-put drm_pagemap_migrate_populate_ram_pfn() had two issues when populating RAM PFNs with higher-order folios: 1. The higher-order vma_alloc_folio()/folio_alloc() calls did not pass __GFP_NOWARN, so a THP allocation failure under memory pressure would spam the kernel log, and there was no fallback path despite a TODO comment stating one was needed. Add __GFP_NOWARN to the higher-order allocation and, on failure, fall back to order-0 allocations for the entire range originally covered by the failed higher-order allocation, leaving MIGRATE_PFN_COMPOUND unset for those PFNs. 2. In the free_pages error path, order was computed via folio_order(page_folio(page)) *after* put_page(page) had already dropped the reference, resulting in a use-after-free/put when that was the last reference on the page. Compute order before releasing the page. Introducing the fallback in 1. also requires the source page array handed to ->copy_to_ram() to be built differently. Both callers only populated the entry at the head of each source folio, relying on the copy callback to derive the rest of the folio from the order recorded in the matching drm_pagemap_addr. Once the destination has been demoted to order-0 folios the drm_pagemap_addr entries are per-page, so a source page is needed for every one of them; leaving them NULL makes the copy callback stop after the first page and the remainder of the range is never copied. The source folio is only split later, by migrate_vma_pages() / migrate_device_pages(), so its order cannot be used to detect the demotion - test the destination for MIGRATE_PFN_COMPOUND instead. Factor the array population out into drm_pagemap_migrate_populate_src_pages() and use it from both drm_pagemap_evict_to_ram() and __drm_pagemap_migrate_to_ram().

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.2.6-1DEBIAN-CVE-2026-89805
Ubuntu:26.04:LTSlinuxno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-awsno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-gcpno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-hwe-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-ibmno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-oem-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-oracleno fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-89805
Ubuntu:26.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-89805
Ubuntu:24.04:LTSlinux-riscv-7.0no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-89805
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-89805

Affected products (as reported)

VendorProductVersions
Linux Linux ddeda6136038b4b313bb6f9b44f2d363e1233814 – before 10e92e18e3dab081789d868878f2ecce6166948addeda6136038b4b313bb6f9b44f2d363e1233814 – before df72e55e754c8d449321ddddad19a8bd3cb8d032
Linux Linux 6.18

References