CVE-2024-27005 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 28.

리눅스 커널에서 다음 취약점이 해결되었습니다:

interconnect: req_list가 조작되는 동안 접근하지 않음

icc_lock 뮤택스는 [1]에서 lockdep splat을 피하기 위해 별도의 icc_lock과 icc_bw_lock 뮤택스로 분리되었습니다. 그러나 이는 icc_node::req_list에 대한 접근을 충분히 보호하지 못했습니다.

icc_set_bw() 함수는 eventually icc_bw_lock만 유지한 채로 req_list를 순회하게 되지만, req_list는 icc_lock만 유지한 상태로 수정될 수 있습니다. 이로 인해 icc_set_bw(), of_icc_get(), 그리고 icc_put() 사이에 경합 조건(race condition)이 발생합니다.

예제 A:

CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); icc_put(path_b) mutex_lock(&icc_lock); aggregate_requests() hlist_for_each_entry(r, ... hlist_del(... <r = 유효하지 않은 포인터>

예제 B:

CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); path_b = of_icc_get() of_icc_get_by_index() mutex_lock(&icc_lock); path_find() path_init() aggregate_requests() hlist_for_each_entry(r, ... hlist_add_head(... <r = 유효하지 않은 포인터>

icc_node::req_list를 조작하기 전에 icc_bw_lock이 항상 유지되도록 함으로써 이 문제를 해결합니다. 추가로 icc_bw_lock을 유지하는 위치에서는 메모리 할당이 수행되지 않으므로, 별도의 락을 도입하게 만든 원래의 lockdep splats로부터 여전히 안전해야 합니다.

[1] commit af42269c3523 ("interconnect: Fix locking for runpm vs reclaim")

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

출처

Interested in the pricing of exploits?

See the underground prices here!