CVE 7.8 HIGH

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

7.8 / 10
HIGH
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

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.

Basic Information

ID CVE-2026-43303
Source Linux
Published May 8, 2026 at 13:11
Modified May 11, 2026 at 06:33

Affected Product

Vendor Linux
Product Linux
Version 3b8000ae185cb068adbda5f966a3835053c85fd4
Affected Versions Linux Linux 3b8000ae185cb068adbda5f966a3835053c85fd4
Linux Linux 3b8000ae185cb068adbda5f966a3835053c85fd4
Linux Linux 3b8000ae185cb068adbda5f966a3835053c85fd4
Linux Linux 5.18

References

💭 Join the Security Discussion

🔒 Your email address will not be published. Required fields are marked *

⚠️ Please be respectful and constructive in your comments. Security discussions should remain professional.