🇰🇷 한글 설명
Linux 커널의 netfilter flowtable에서 IP6IP6 터널 처리 방식의 오류를 수정했습니다. skb_header_pointer() 대신 pskb_may_pull()을 사용하여 외부 IPv6 헤더가 skb 헤드룸에 위치하도록 보장하고, 불필요한 확장 헤더 처리 로직을 제거하여 패킷 처리의 안정성을 높였습니다.
💡 쉬운 설명
인터넷 데이터 패킷을 전달하는 과정에서 특정 방식(IP6IP6 터널)의 데이터를 처리할 때 발생할 수 있는 오류를 고쳤습니다. 이를 통해 시스템이 잘못된 데이터로 인해 오작동하거나 보안 문제가 생기는 것을 방지합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: flowtable: fix and simplify IP6IP6 tunnel handling
Fix nf_flow_ip6_tunnel_proto() to use pskb_may_pull() instead of
skb_header_pointer() to ensure the outer IPv6 header is in the skb
headroom, which is required for subsequent packet processing. Move
ctx->offset update inside the IPPROTO_IPV6 conditional block since it
should only be adjusted when an IP6IP6 tunnel is actually detected.
Simplify the rx path by removing ipv6_skip_exthdr() and checking
ip6h->nexthdr directly, as the flowtable fast path only handles simple
IP6IP6 encapsulation without extension headers.
Drop the tunnel encapsulation limit destination option support from the
tx path to match, since the rx path no longer handles extension headers.
Remove the encap_limit parameter from nf_flow_offload_ipv6_forward(),
nf_flow_tunnel_ip6ip6_push() and nf_flow_tunnel_v6_push(), along with
the ipv6_tel_txoption struct and related headroom/MTU adjustments.
📍 영향받는 시스템
IP6IP6 터널링을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 IPv6 확장 헤더를 포함한 IP6IP6 터널 패킷을 전송하여 커널의 패킷 처리 로직을 교란
🛡️ 대응 방법
최신 보안 패치가 적용된 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인