LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
タイトル LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
概要

Linuxカーネルにおいて、mm/page_allocのfree_pages_prepare()関数内でpage-privateをクリアする修正が行われました。いくつかのサブシステム(slub、shmem、ttmなど)はpage-privateを使用していますが、ページ解放前にこれをクリアしなかったため、分割されたハイオーダーページの末尾のページに古い値が残り、スワップサブシステムでユースアフターフリーやカーネルクラッシュが引き起こされていました。この問題はfree_pages_prepare()内でpage-privateをクリアすることで解決されました。

想定される影響 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

公表日 2026年5月8日0:00
登録日 2026年5月18日11:29
最終更新日 2026年5月18日11:29
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 5.18
Linux Kernel 5.18.1 以上 6.18.16 未満
Linux Kernel 6.19 以上 6.19.6 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月18日]
  掲載
2026年5月18日11:29

NVD脆弱性情報
CVE-2026-43303
概要

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.

公表日 2026年5月8日23:16
登録日 2026年5月9日4:13
最終更新日 2026年5月12日23:10
関連情報、対策とツール
共通脆弱性一覧