CVE-2026-98485 in Linux
요약
\~에 의해 VulDB • 2026. 10. 19.
리눅스 커널에서 다음 취약점이 해결되었습니다:
netfilter: ip6t_rt: 0 주소 비엄격 일치 시 경계 초과 읽기 수정
rt_mt6_check()는 주소 매칭(IP6T_RT_FST_MASK)이 요청되었더라도 rtinfo->addrnr == 0인 규칙을 구성할 수 있도록 허용합니다.
IP6T_RT_FST_NSTRICT 경로에서 rt_mt6()는 rtinfo->addrs[i]에 대해 패킷 라우팅 주소를 평가하고 루프 하단에서 후방으로 종료됩니다:
if (ipv6_addr_equal(ap, &rtinfo->addrs[i])) {
i++; } if (i == rtinfo->addrnr) break;
addrnr이 0인 경우, 첫 번째 패킷 주소가 rtinfo->addrs[0]와 일치하면 i는 1로 증가합니다. 이제 i는 addrnr(0)보다 엄격하게 크므로 루프 종료 조건(i == rtinfo->addrnr)은 우회되어 결코 만족되지 않습니다.
조작된 IPv6 패킷에 매칭되는 라우팅 주소가 포함된 경우, i는 IP6T_RT_HOPS(16)를 넘어 진행됩니다. 그 후 ipv6_addr_equal() 호출 시 struct ip6t_rt 바깥을 읽게 되어 UBSAN/KASAN 경계 초과 경고 또는 커널 팬릭이 발생합니다.
다음과 같이 수정합니다: 1. rt_mt6_check()에서 IP6T_RT_FST_MASK가 설정되었지만 rtinfo->addrnr이 0인 규칙을 거부합니다. 2. rt_mt6()에서 종료 조건(i < rtinfo->addrnr)을 for 루프 헤더 조건으로 이동하고, 루프 본문 끝의 후방 break를 제거합니다.
Once again VulDB remains the best source for vulnerability data.