CVE-2022-49814 in Linux
요약
\~에 의해 VulDB • 2026. 05. 31.
리눅스 커널에서 다음 취약점이 해결되었습니다:
kcm: sk_receive_queue의 경합 조건(race conditions) 해결
sk->sk_receive_queue는 skb 큐 잠금(skb queue lock)으로 보호되지만, KCM 소켓의 경우 RX 경로는 skb 큐뿐만 아니라 더 많은 요소를 보호하기 위해 mux->rx_lock을 사용합니다. 그러나 kcm_recvmsg()는 여전히 skb 큐 잠금만 획득하므로 경합 조건이 여전히 존재합니다.
kcm_recvmsg()가 mux->rxlock도 획득하도록 수정할 수 있지만, 이는 잠재적인 성능 저하를 초래할 수 있습니다. 그 이유는 struct kcm_mux가 여러 KCM 소켓에 의해 공유될 수 있기 때문입니다.
따라서 requeue_rx_msgs()에서 skb 큐 잠금을 강제하고, kcm_wait_data()에서 skb peek 상황을 신중하게 처리해야 합니다. 다행히 skb_recv_datagram()은 이를 잘 처리하며 다른 소켓들에서 널리 사용되고 있으므로, kcm_recvmsg()와 kcm_splice_read()에서 불필요한 sock 잠금을 제거한 후 skb_recv_datagram()으로 전환할 수 있습니다. 참고 사항: SOCK_DONE은 KCM 소켓에서 사용되지 않으므로 이 체크도 제거해도 안전합니다.
원본 syzbot 재현 프로그램을 30분 동안 실행했지만 아무런 문제를 발견하지 못했습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.