CVE-2026-46035 in Linux
要約
〜によって VulDB • 2026年05月31日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm/page_alloc: NMI発生時のUP環境においてalloc_frozen_pages_nolock()からNULLを早期に返す
UPカーネル(!CONFIG_SMP)では、spin_trylock()はロックが既に保持されている場合でも無条件に成功する何もしない処理(no-op)となります。その結果、NMIコンテキストから呼び出されたalloc_frozen_pages_nolock()はrmqueue()に再進入し、割り込み前のコンテキストが既に保持しているゾーンロックを取得してしまうため、フリーリストが破損します。
UP環境でCONFIG_DEBUG_SPINLOCKを有効にすると、slub_kunitテストモジュール実行時に以下のBUGがトリガーされます。
BUG: spinlock trylock failure on UP on CPU#0, kunit_try_catch/243 [...]
Call Trace: dump_stack_lvl+0x3f/0x60 do_raw_spin_trylock+0x41/0x50 _raw_spin_trylock+0x24/0x50 rmqueue.isra.0+0x2a9/0xa70 get_page_from_freelist+0xeb/0x450 alloc_frozen_pages_nolock_noprof+0x111/0x1e0 allocate_slab+0x42a/0x500 ___slab_alloc+0xa7/0x4c0 kmalloc_nolock_noprof+0x164/0x310 [...]
UPカーネルでNMIから呼び出された際にNULLを早期に返すことで、この問題を修正します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.