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

mm/page_alloc: clear page->private in free_pages_prepare()

Several subsystems (slub, shmem, ttm, etc.) use page->private but don't
clear it before freeing pages. When these pages are later allocated as
high-order pages and split via split_page(), tail pages retain stale
page->private values.

This causes a use-after-free in the swap subsystem. The swap code uses
page->private to track swap count continuations, assuming freshly
allocated pages have page->private == 0. When stale values are present,
swap_count_continued() incorrectly assumes the continuation list is valid
and iterates over uninitialized page->lru containing LIST_POISON values,
causing a crash:

KASAN: maybe wild-memory-access in range [0xdead000000000100-0xdead000000000107]
RIP: 0010:__do_sys_swapoff+0x1151/0x1860

Fix this by clearing page->private in free_pages_prepare(), ensuring all
freed pages have clean state regardless of previous use.
Published: 2026-05-08
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel mistakenly reused stale values in page->private when freeing pages, allowing the swap subsystem to treat outdated data as a valid continuation list. This leads to a use‑after‑free condition that corrupts kernel memory and causes a crash, as observed by the KASAN error in __do_sys_swapoff. The weakness is a use‑after‑free condition (CWE‑909) and can bring the system down, but there is no evidence of remote code execution or integrity compromise.

Affected Systems

All Linux kernel versions lacking the patch that clears page->private in free_pages_prepare() are affected. The vulnerability touches several subsystems—slub, shmem, ttm, among others—that rely on page->private for their internal state, yet the damage manifests in the swap subsystem. No specific version numbers were supplied, so the impact applies to any kernel before the fix was merged.

Risk and Exploitability

The vulnerability has no publicly listed KEV status and no EPSS score is available, but the nature of the fault means a local attacker who can trigger high-order page allocation or execute swapoff will likely cause a fatal kernel panic. The CVSS score of 7.0 indicates high severity; however, the potential for a complete system reboot gives it a moderate to high risk. The attack vector is inferred as local privileged or root activity that can execute swapoff or manipulate memory allocation.

Generated by OpenCVE AI on May 9, 2026 at 01:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the fix for page->private clearing in free_pages_prepare()
  • Reboot the system to load the updated kernel
  • Subscribe your distribution’s security update service to receive timely patch notifications

Generated by OpenCVE AI on May 9, 2026 at 01:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 09 May 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-909
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Important


Fri, 08 May 2026 13:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/page_alloc: clear page->private in free_pages_prepare() Several subsystems (slub, shmem, ttm, etc.) use page->private but don't clear it before freeing pages. When these pages are later allocated as high-order pages and split via split_page(), tail pages retain stale page->private values. This causes a use-after-free in the swap subsystem. The swap code uses page->private to track swap count continuations, assuming freshly allocated pages have page->private == 0. When stale values are present, swap_count_continued() incorrectly assumes the continuation list is valid and iterates over uninitialized page->lru containing LIST_POISON values, causing a crash: KASAN: maybe wild-memory-access in range [0xdead000000000100-0xdead000000000107] RIP: 0010:__do_sys_swapoff+0x1151/0x1860 Fix this by clearing page->private in free_pages_prepare(), ensuring all freed pages have clean state regardless of previous use.
Title mm/page_alloc: clear page->private in free_pages_prepare()
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-05-08T13:11:23.561Z

Reserved: 2026-05-01T14:12:56.000Z

Link: CVE-2026-43303

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-08T14:16:37.583

Modified: 2026-05-08T14:16:37.583

Link: CVE-2026-43303

cve-icon Redhat

Severity : Important

Publid Date: 2026-05-08T00:00:00Z

Links: CVE-2026-43303 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-05-09T02:00:19Z

Weaknesses