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.

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!