🇰🇷 한글 설명
Linux 커널의 netfilter 구성 요소 중 ip6t_rpfilter에서 발생하는 취약점으로, 특정 조건에서 inet6_dev가 NULL인 경로를 참조할 때 NULL 포인터 역참조가 발생합니다. 비특권 사용자가 네트워크 네임스페이스를 통해 이 상태를 유도하여 커널 패닉을 일으킬 수 있습니다.
💡 쉬운 설명
네트워크 경로 정보가 잘못 설정되었을 때 컴퓨터의 핵심 시스템(커널)이 존재하지 않는 주소를 참조하려다 멈춰버리는 문제입니다. 해커가 특수한 네트워크 환경을 만들어 시스템을 강제로 다운시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: ip6t_rpfilter: reject routes without inet6_dev
ip6_route_lookup() can return an error-free route whose rt6i_idev is
NULL. Lowering an external nexthop device's MTU below IPV6_MIN_MTU tears
down its inet6_dev while fib6_ifdown() leaves routes using nexthop objects
in the FIB. An unprivileged user can construct this state with rtnetlink
in a private user and network namespace, then trigger a NULL dereference
through an IPv6 rpfilter lookup:
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000000
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
RIP: rpfilter_mt (net/ipv6/netfilter/ip6t_rpfilter.c:75)
Call Trace:
ip6t_do_table (net/ipv6/netfilter/ip6_tables.c:316)
nf_hook_slow (net/netfilter/core.c:619)
ipv6_rcv (net/ipv6/ip6_input.c:351)
__netif_receive_skb_one_core (net/core/dev.c:6216)
process_backlog (net/core/dev.c:6680)
__napi_poll (net/core/dev.c:7739)
net_rx_action (net/core/dev.c:7959)
handle_softirqs (kernel/softirq.c:622)
do_softirq.part.0 (kernel/softirq.c:523)
__local_bh_enable_ip (kernel/softirq.c:450)
__dev_queue_xmit (net/core/dev.c:4913)
packet_sendmsg (net/packet/af_packet.c:3139)
__sys_sendto (net/socket.c:2252)
__x64_sys_sendto (net/socket.c:2259)
do_syscall_64 (arch/x86/entry/syscall_64.c:94)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Kernel panic - not syncing: Fatal exception in interrupt
Reject routes without an inet6_dev immediately after lookup. Such routes
are not eligible for reverse-path filtering, and the check protects all
later rt6i_idev dereferences.
📍 영향받는 시스템
Linux kernel (ip6t_rpfilter 모듈을 사용하는 버전)
⚔️ 공격 벡터
비특권 사용자가 rtnetlink를 사용하여 사용자 및 네트워크 네임스페이스 내에서 특정 네트워크 상태를 구성한 후 IPv6 rpfilter 조회를 유도함
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ip6t_rpfilter의 경로 검증 로직을 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.