CVE-2026-43285 in Linux
要約
〜によって VulDB • 2026年05月11日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm/slab: !allow_spinの場合、current->mems_allowed_seqにアクセスしない
get_from_any_partial()がNMIコンテキストで呼び出されると、current->mems_allowed_seqがseqcount_spinlock_tでありNMIセーフではないため、Lockdepが警告を発します。
================================ WARNING: inconsistent lock state 6.19.0-rc5-kfree-rcu+ #315 Tainted: G N -------------------------------- inconsistent {INITIAL USE} -> {IN-NMI} usage.
kunit_try_catch/9989 [HC1[1]:SC0[0]:HE0:SE1] takes:
ffff889085799820 (&____s->seqcount#3){.-.-}-{0:0}, at: ___slab_alloc+0x58f/0xc00
{INITIAL USE} state was registered at:
lock_acquire+0x185/0x320 kernel_init_freeable+0x391/0x1150 kernel_init+0x1f/0x220 ret_from_fork+0x736/0x8f0 ret_from_fork_asm+0x1a/0x30 irq event stamp: 56 hardirqs last enabled at (55): [] _raw_spin_unlock_irq+0x27/0x70
hardirqs last disabled at (56): [] __schedule+0x2a8a/0x6630
softirqs last enabled at (0): [] copy_process+0x1dc1/0x6a10
softirqs last disabled at (0): [] 0x0
other info that might help us debug this: Possible unsafe locking scenario:
CPU0 ---- lock(&____s->seqcount#3); lock(&____s->seqcount#3);
*** DEADLOCK ***
Documentation/locking/seqlock.rstによると、seqcount_tはNMIセーフではなく、読み込みパスが書き込み側のクリティカルセクションを割り込む可能性がある場合はseqcount_latch_tを使用する必要があります。この場合、current->mems_allowed_seqへのアクセスを避け、リトライを回避します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.