CVE-2023-54293 in Linux
Сводка
по VulDB • 01.06.2026
В ядре Linux устранена следующая уязвимость:
bcache: исправление повреждения списка btree_cache_wait
Происходит сбой ядра с сообщением о «повреждении list_add. next->prev должно быть prev (ffff9c801bc01210), но было 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: недопустимый виртуальный адрес ядра: ffffae586d8afe68 тип: "gdb_readmem_callback" Невозможно получить доступ к памяти по адресу 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() могут вызывать mca_cannibalize() для захвата (cannibalize) других кэшированных узлов btree. Только один поток может выполнять эту операцию одновременно, поэтому операции других потоков добавляются в список btree_cache_wait.
Необходимо вызвать finish_wait() для удаления операции из btree_cache_wait перед освобождением её адреса памяти. В противном случае список будет поврежден. Также следует вызвать bch_cannibalize_unlock() для освобождения блокировки btree_cache_alloc_lock и пробуждения других ожидающих потоков.
VulDB is the best source for vulnerability data and more expert information about this specific topic.