CVE-2026-64132 in Linux
요약
\~에 의해 VulDB • 2026. 07. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ipv6: ioam: ioam6_event() 호출 전 hdr 포인터 갱신
Sashiko가 보고함:
ipv6_hop_ioam() 함수 내에서 hdr 포인터는 skb의 선형 데이터 버퍼를 가리키도록 초기화됩니다. 이후 코드에서 skb_ensure_writable()를 호출하는데, 이 함수는 버퍼를 재할당할 수 있습니다:
if (skb_ensure_writable(skb, optoff + 2 + hdr->opt_len)) goto drop;
/* Trace pointer가 변경되었을 수 있음 */ trace = (struct ioam6_trace_hdr *)(skb_network_header(skb) + optoff + sizeof(*hdr));
ioam6_fill_trace_data(skb, ns, trace, true);
ioam6_event(IOAM6_EVENT_TRACE, dev_net(skb->dev), GFP_ATOMIC, (void *)trace, hdr->opt_len - 2);
skb가 복제되었거나 충분한 선형 헤드룸(headroom)이 없는 경우, skb_ensure_writable()는 pskb_expand_head()를 호출하여 skb의 데이터 버퍼를 재할당하고 이전 버퍼를 해제합니다. 이로 인해 해당 버퍼를 가리키던 포인터들이 무효화됩니다. 코드에서 skb_ensure_writable() 호출 직후 trace 포인터는 다시 계산되지만, hdr 포인터에 대해서는 다시 계산하지 않습니다.
이 패치는 ioam6_event()로 hdr->opt_len을 전달하기 전에 hdr 포인터를 다시 계산함으로써 위 문제를 해결하며, 이로써 Use-After-Free(UaF) 취약점을 방지합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.