CVE-2026-89561 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ipv6: rpl: ipv6_rpl_srh_rcv()에서의 idev NULL dereference 수정
ipv6_rpl_srh_rcv()는 idev->cnf.rpl_seg_enabled을 읽을 때 __in6_dev_get()로부터 반환된 idev에 대한 NULL 체크 없이 dereferencing합니다.
디바이스의 MTU가 IPV6_MIN_MTU 미만으로 떨어지면 addrconf_ifdown()은 RCU_INIT_POINTER()를 통해 dev->ip6_ptr를 지웁니다. ip6_rcv_core()의 idev 검사를 통과한 패킷이 이미 NULL인 dev->ip6_ptr 상태로 ipv6_rpl_srh_rcv()에 도달할 수 있습니다.
수신 인터페이스로 ping6 트래픽을 폭주(flooding)시키면서 MTU를 1500과 1200 사이에서 변동(flapping)시켜 다음과 같이 재현되었습니다:
BUG: KASAN: null-ptr-deref in ipv6_rpl_srh_rcv+0xb3/0x1070 Read of size 4 at addr 00000000000006b4 by task ping6/394
CPU: 2 UID: 0 PID: 394 Comm: ping6 Not tainted 7.2.0-rc7-micro-vm-dev-00095-g24ef02f934ee #240 PREEMPT(full) Call Trace: <IRQ> kasan_report+0xc6/0x100 ipv6_rpl_srh_rcv+0xb3/0x1070 ip6_protocol_deliver_rcu+0x759/0x9a0 ip6_input_finish+0xa8/0x1b0 ip6_input+0xe1/0x490 ipv6_rcv+0x33d/0x460 __netif_receive_skb_one_core+0xd6/0x130 process_backlog+0x2cc/0xa00 __napi_poll.constprop.0+0x56/0x270 net_rx_action+0x327/0x730 handle_softirqs+0x11e/0x630 do_softirq+0xb3/0xf0 </IRQ>
ipv6_rpl_srh_rcv()와 ipv6_srh_rcv()는 이미 idev 조회를 수행하는 ipv6_rthdr_rcv()에서만 호출됩니다.
RPL 경로에서의 NULL dereference를 수정하기 위해, 두 함수 중 하나를 호출하기 전에 ipv6_rthdr_rcv()에서 idev를 확인합니다. 호출되는 함수들은 인자로 idev를 받으며 더 이상 __in6_dev_get()을 호출하지 않으므로, 패킷은 이제 한 곳에서 처리되며 양쪽 경로 모두에서 SKB_DROP_REASON_IPV6DISABLED로 드롭됩니다.
Be aware that VulDB is the high quality source for vulnerability data.