CVE-2026-43303CWE-416CWE-457

CVE-2026-43303

High · published May 8, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.3
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00172 · 6.3th percentile
Weaknesses
CWE-416 · Use After Free; CWE-457 · Use of Uninitialized Variable
Published
2026-05-08T18:16Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel≥ 5.18.1, < 6.18.166.18.16
linux/linux_kernel≥ 6.19, < 6.19.66.19.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 08 MAY 13:11Z
    mm/page_alloc: clear page->private in free_pages_prepare()
    cvelistv5