CVE-2026-23277 in Linux
요약
\~에 의해 VulDB • 2026. 06. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/sched: teql: TEQL 슬레이브 전송 시 iptunnel_xmit에서의 NULL 포인터 역참조 수정
teql_master_xmit()은 slave 장치를 통해 전송하기 위해 netdev_start_xmit(skb, slave)를 호출하지만, 사전에 skb->dev를 slave 장치로 업데이트하지 않습니다.
gretap 터널이 TEQL 슬레이브인 경우, 전송 경로는 iptunnel_xmit()에 도달하여 dev = skb->dev(teql0 마스터를 여전히 가리킴)를 저장한 후 나중에 iptunnel_xmit_stats(dev, pkt_len)을 호출합니다. 이 함수는 다음 작업을 수행합니다:
get_cpu_ptr(dev->tstats)
teql_master_setup()가 dev->pcpu_stat_type에 NETDEV_PCPU_STAT_TSTATS를 설정하지 않으므로, 핵심 네트워크 스택은 teql0에 대해 tstats를 할당하지 않습니다. 따라서 dev->tstats는 NULL입니다. get_cpu_ptr(NULL)은 NULL + __per_cpu_offset[cpu]를 계산하여 페이지 폴트를 유발합니다.
BUG: unable to handle page fault for address: ffff8880e6659018 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page PGD 68bc067 P4D 68bc067 PUD 0 Oops: Oops: 0002 [#1] SMP KASAN PTI
RIP: 0010:iptunnel_xmit (./include/net/ip_tunnels.h:664 net/ipv4/ip_tunnel_core.c:89) Call Trace: <TASK> ip_tunnel_xmit (net/ipv4/ip_tunnel.c:847) __gre_xmit (net/ipv4/ip_gre.c:478) gre_tap_xmit (net/ipv4/ip_gre.c:779) teql_master_xmit (net/sched/sch_teql.c:319) dev_hard_start_xmit (net/core/dev.c:3887) sch_direct_xmit (net/sched/sch_generic.c:347) __dev_queue_xmit (net/core/dev.c:4802) neigh_direct_output (net/core/neighbour.c:1660) ip_finish_output2 (net/ipv4/ip_output.c:237) __ip_finish_output.part.0 (net/ipv4/ip_output.c:315) ip_mc_output (net/ipv4/ip_output.c:369) ip_send_skb (net/ipv4/ip_output.c:1508) udp_send_skb (net/ipv4/udp.c:1195) udp_sendmsg (net/ipv4/udp.c:1485) inet_sendmsg (net/ipv4/af_inet.c:859) __sys_sendto (net/socket.c:2206)
netdev_start_xmit() 호출 전에 skb->dev = slave를 설정하여 터널 전송 함수가 적절히 할당된 tstats를 가진 올바른 슬레이브 장치를 볼 수 있도록 함으로써 이 문제를 해결합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.