🇰🇷 한글 설명
리눅스 커널의 netfilter xtables 구성 요소에서 NFPROTO_UNSPEC 프로토콜 유형을 부적절하게 사용하는 취약점이 발견되었습니다. 특정 모듈이 IPv4/IPv6 패킷 처리를 가정하면서도 프로토콜 제한 없이 등록되어, ebtables와 같은 다른 네트워크 계층에서 호출될 때 오류를 유발할 수 있습니다.
💡 쉬운 설명
네트워크 규칙을 관리하는 리눅스 시스템의 특정 기능이 잘못된 통신 방식(프로토콜)을 허용하여 시스템 오류를 일으킬 수 있는 문제입니다. 이로 인해 네트워크 필터링 과정에서 예기치 않은 동작이나 충돌이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: xtables: avoid NFPROTO_UNSPEC where needed
syzbot managed to call xt_cluster match via ebtables:
WARNING: CPU: 0 PID: 11 at net/netfilter/xt_cluster.c:72 xt_cluster_mt+0x196/0x780
[..]
ebt_do_table+0x174b/0x2a40
Module registers to NFPROTO_UNSPEC, but it assumes ipv4/ipv6 packet
processing. As this is only useful to restrict locally terminating
TCP/UDP traffic, register this for ipv4 and ipv6 family only.
Pablo points out that this is a general issue, direct users of the
set/getsockopt interface can call into targets/matches that were only
intended for use with ip(6)tables.
Check all UNSPEC matches and targets for similar issues:
- matches and targets are fine except if they assume skb_network_header()
is valid -- this is only true when called from inet layer: ip(6) stack
pulls the ip/ipv6 header into linear data area.
- targets that return XT_CONTINUE or other xtables verdicts must be
restricted too, they are incompatbile with the ebtables traverser, e.g.
EBT_CONTINUE is a completely different value than XT_CONTINUE.
Most matches/targets are changed to register for NFPROTO_IPV4/IPV6, as
they are provided for use by ip(6)tables.
The MARK target is also used by arptables, so register for NFPROTO_ARP too.
While at it, bail out if connbytes fails to enable the corresponding
conntrack family.
This change passes the selftests in iptables.git.
📍 영향받는 시스템
NFPROTO_UNSPEC을 사용하는 특정 xtables 매치 및 타겟이 포함된 리눅스 커널 버전
⚔️ 공격 벡터
네트워크 계층 간 프로토콜 불일치를 유도하는 특수하게 구성된 패킷 또는 xtables 규칙 호출
🛡️ 대응 방법
해당 취약점이 해결된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.