CVE-2026-98596 in Linux
요약
\~에 의해 VulDB • 2026. 10. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ipv6: 캐시되지 않은 라우트에 대한 dst 누수 수정
ip6_route_output_flags(), ip6_rt_put_flags() 및 ip6_dst_check() 함수는 list_empty(&rt->dst.rt_uncached)를 통해 캐시되지 않은 라우트를 감지합니다. 이는 커밋 a4c2fd7f7891("net: remove DST_NOCACHE flag")에서 정적 DST_NOCACHE 플래그 검사를 대체한 것입니다.
디바이스가 등록 해제될 때, rt6_uncached_list_flush_dev()는 해당 디바이스에 연결된 캐시되지 않은 라우트를 rt6_uncached_list에서 제거합니다.
이전에는 list_move__()(__list_del_entry() + list_add())를 사용하여 다른 리스트로 이동되었으나, 커밋 98aa546af5e4("inet: remove (struct uncached_list)->quarantine") 이후로는 routes가 단순히 list_del_init()로만 제거됩니다.
list_del_init()이 동시에 실행될 경우, list_empty()는 참(true)으로 평가됩니다; 이로 인해 ip6_route_output_flags()에서 dst_hold_safe()를 잘못 호출하고, ip6_rt_put_flags()에서는 ip6_rt_put()을 건너뛰어 dst가 누수되며, 따라서 rt->from을 통해 연결된 디바이스도 함께 누수됩니다.
동일한 Race Condition은 커밋 9a6f0c4d5796("dst: fix races in rt6_uncached_list_del() and rt_del_uncached_list()")에 의해 부분적으로 수정되었습니다.
대신 rt6->dst.rt_uncached_list를 확인합니다.
IPv4에는 동일한 문제가 없습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.