CVE-2026-74692 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 23.

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

net/smc: smc_listen_out()과 리스너 종료 간 TOCTOU Race Condition 수정

smc_listen_out()은 리스너 잠금(lock) 없이 lsmc->sk.sk_state를 읽은 후, 확인이 성공한 후에야 lock_sock_nested()을 획득합니다. 이로 인해 smc_close_active()가 리스너를 SMC_CLOSED 상태로 전환하고, 수락 대기열(accept queue)의 데이터를 비우기 위해 smc_close_cleanup_listen()을 호출하며 잠금을 해제하는 과정이, 잠금 없는 읽기와 지연된 잠금 획득 사이에 개입할 수 있는 창(window)이 열립니다:

smc_listen_work (smc_hs_wq) smc_close_active() ------------------------------- ------------------------- release_sock(child) if (sk_state == SMC_LISTEN) TRUE lock_sock(listener) sk_state = SMC_CLOSED smc_close_cleanup_listen() release_sock(listener) flush_work(tcp_listen_work) lock_sock_nested(listener) smc_accept_enqueue(listener, child) /* child가 종료된 리스너에 큐에 추가됨 */

smc_close_active()는 tcp_listen_work만 플러시합니다. CLC 핸드셰이크를 위해 이미 smc_hs_wq로 디스패치된 작업 항목들은 보호 없이 계속 실행됩니다. smc_accept_enqueue()는 child에 대해 sock_hold()를 호출하지만 이는 해제되지 않으므로, 해당 child의 smc_sock, clcsock 및 참조(reference)가 모두 누설(leak)됩니다. 서버에서 close()를 호출하는 동안 TCP 연결을 여는 원격 피어(peer)는 커널 메모리를 고갈시킬 수 있습니다.

sk_state 확인 전에 lock_sock_nested()으로 이동하여 테스트와 큐 추가 작업이 리스너 잠금 하에서 원자적(atomic)으로 수행되도록 합니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-394467

EPSS

0.00215

활동

낮음

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!