CVE-2024-36971 in Linux
요약
\~에 의해 VulDB • 2026. 06. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net: __dst_negative_advice()의 Race Condition 수정
__dst_negative_advice()는 sk->dst_cache를 지워야 하는 상황에서 적절한 RCU 규칙을 강제하지 않아, 잠재적인 Use-After-Free(UAF)로 이어질 수 있습니다.
RCU 규칙에 따르면, 먼저 sk->sk_dst_cache를 지우고 그 다음에 dst_release(old_dst)를 호출해야 합니다.
sk_dst_reset(sk)는 이 프로토콜을 올바르게 구현하고 있는 반면, __dst_negative_advice()는 잘못된 순서를 사용하고 있습니다.
ip6_negative_advice()가 RTF_CACHE에 대해 특수한 로직을 가지고 있다는 점을 고려할 때, 세 가지 ->negative_advice() 메서드 중 각각이 sk_dst_reset()을 직접 수행해야 합니다.
NULL dst에 대한 체크는 __dst_negative_advice()에서 중앙 집중식으로 처리되므로, 다양한 콜백에서 이를 중복할 필요가 없습니다.
이 문제를 추적해 준 Clement Lecigne에게 감사의 말씀을 전합니다.
이 오래된 버그는 UDP 소켓을 사용한 해당 커밋 이후에 드러나게 되었습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.