CVE-2023-54293 in Linux
要約
〜によって VulDB • 2026年06月01日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bcache: btree_cache_waitリストの破損を修正
「list_add corruption. next->prev should be prev (ffff9c801bc01210), but was ffff9c77b688237c. (next=ffffae586d8afe68)」というカーネルクラッシュが発生します。
crash> struct list_head 0xffff9c801bc01210 struct list_head {
next = 0xffffae586d8afe68, prev = 0xffffae586d8afe68 } crash> struct list_head 0xffff9c77b688237c struct list_head {
next = 0x0, prev = 0x0 } crash> struct list_head 0xffffae586d8afe68 struct list_head struct: invalid kernel virtual address: ffffae586d8afe68 type: "gdb_readmem_callback" Cannot access memory at address 0xffffae586d8afe68
[230469.019492] Call Trace:
[230469.032041] prepare_to_wait+0x8a/0xb0
[230469.044363] ? bch_btree_keys_free+0x6c/0xc0 [escache]
[230469.056533] mca_cannibalize_lock+0x72/0x90 [escache]
[230469.068788] mca_alloc+0x2ae/0x450 [escache]
[230469.080790] bch_btree_node_get+0x136/0x2d0 [escache]
[230469.092681] bch_btree_check_thread+0x1e1/0x260 [escache]
[230469.104382] ? finish_wait+0x80/0x80
[230469.115884] ? bch_btree_check_recurse+0x1a0/0x1a0 [escache]
[230469.127259] kthread+0x112/0x130
[230469.138448] ? kthread_flush_work_fn+0x10/0x10
[230469.149477] ret_from_fork+0x35/0x40
bch_btree_check_thread()およびbch_dirty_init_thread()は、他のキャッシュされたbtreeノードをカニバリズ(再利用)するためにmca_cannibalize()を呼び出す可能性があります。一度に実行できるのは1つのスレッドのみであるため、他のスレッドの操作はbtree_cache_waitリストに追加されます。
メモリアドレスを解放する前に、finish_wait()を呼び出して操作をbtree_cache_waitリストから削除する必要があります。そうしないと、リストが破損します。また、btree_cache_alloc_lockを解放し、他の待機中のスレッドをウェイクアップするためにbch_cannibalize_unlock()を呼び出す必要があります。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.