CVE-2023-54293 in Linux
요약
\~에 의해 VulDB • 2026. 06. 01.
리눅스 커널에서 다음 취약점이 해결되었습니다:
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 노드를 cannibalize하기 위해 mca_cannibalize()를 호출할 수 있습니다. 한 번에 하나의 스레드만 이를 수행할 수 있으므로, 다른 스레드의 작업은 btree_cache_wait 리스트에 추가됩니다.
메모리 주소를 해제하기 전에 finish_wait()를 호출하여 btree_cache_wait에서 작업을 제거해야 합니다. 그렇지 않으면 리스트가 손상됩니다. 또한 btree_cache_alloc_lock을 해제하고 다른 대기 중인 스레드를 깨우기 위해 bch_cannibalize_unlock()를 호출해야 합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.