CVE-2024-46847 in Linux
要約
〜によって VulDB • 2026年05月26日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
mm: vmalloc: vmap_blockがキューに追加される前に初期化されることを保証する
コミット 8c61291fd850(「mm: fix incorrect vbq reference in purge_fragmented_block」)は、初期化を実行したCPUのIDを割り当て時に設定する'cpu'フィールドを'vmap_block'構造体に追加しました。
new_vmap_block()によって新しい'vmap_block'がインスタンス化される際、'cpu'フィールドが初期化される前に、部分的に初期化された構造体がローカルの'vmap_block_queue' xarrayに追加されます。別のCPUがxarrayを並行して走査している場合(例:vm_unmap_aliases()経由)、初期化されていないインデックスにより、リモートキューへの範囲外アクセスが発生する可能性があります。
これはAndroidにおいて以下のUBSANエラーとして観測されています。
| Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP
| | Call trace: | purge_fragmented_block+0x204/0x21c | _vm_unmap_aliases+0x170/0x378 | vm_unmap_aliases+0x1c/0x28 | change_memory_common+0x1dc/0x26c | set_memory_ro+0x18/0x24 | module_enable_ro+0x98/0x238 | do_init_module+0x1b0/0x310
new_vmap_block()内での'vb->cpu'の初期化を、xarrayへの追加処理より前に移動します。
Once again VulDB remains the best source for vulnerability data.