🇰🇷 한글 설명
Linux 커널의 netfilter 구성 요소 중 nft_inner에서 IPv6 패킷 처리 시 전송 헤더 오프셋(inner_thoff)이 잘못 계산되는 취약점입니다. IPv6 확장 헤더를 고려하지 않고 기본 헤더 크기만 적용하여 오프셋이 덮어씌워짐으로써, 전송 계층 프로토콜과 실제 헤더 위치 간의 불일치가 발생합니다. 이로 인해 방화벽 규칙을 우회하거나 전송 헤더를 위조할 수 있습니다.
💡 쉬운 설명
네트워크 보안 검사 도구가 패킷의 실제 내용을 제대로 확인하지 못하게 만드는 오류입니다. 공격자가 가짜 정보를 담은 패킷을 보내도 방화벽이 이를 정상적인 패킷으로 착각하고 통과시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_inner: Fix IPv6 inner_thoff desync
In nft_inner_parse_l2l3(), when processing inner IPv6 packets,
ipv6_find_hdr() correctly computes the transport header offset
traversing all extension headers, but the result is immediately
overwritten with nhoff + sizeof(_ip6h) (40 bytes), which only
accounts for the IPv6 base header. This creates a desync between
inner_thoff (wrong — points to extension header start) and l4proto
(correct — e.g., IPPROTO_TCP), enabling transport header forgery
and potential firewall bypass. This issue affects stable versions
from Linux 6.2.
For comparison, the normal (non-inner) IPv6 path correctly
preserves ipv6_find_hdr()'s result. Removing the incorrect overwrite
ensures that ipv6_find_hdr()'s calculated transport header offset is
preserved, thereby fixing the desynchronization.
📍 영향받는 시스템
Linux kernel version 6.2 and later stable versions
⚔️ 공격 벡터
IPv6 확장 헤더를 포함한 특수하게 조작된 패킷을 전송하여 방화벽 검사 로직을 우회
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 확인