🔍 CVE-2026-99088

0.0
CVSS Score
UNKNOWN
2026-10-26
2026-10-30 13:21
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Open vSwitch 모듈에서 IPv6 조각(fragment) 패킷에 대해 주소 재작성 작업을 수행할 때, transport header가 설정되지 않은 상태에서 접근하여 디버그 경고가 발생하는 문제입니다. 해당 경우 l4_proto가 NEXTHDR_FRAGMENT이면 조기 반환하도록 수정되어 해결되었습니다. 이 문제는 실질적인 기능 장애보다는 CONFIG_DEBUG_NET 활성화 환경에서의 경고 발생에 관한 것입니다.

💡 쉬운 설명

네트워크 가상 스위치 기능에서 쪼개진 IPv6 데이터를 처리할 때 디버그 경고가 잘못 발생하는 문제입니다. 실제 데이터 손상이나 보안 침해는 일으키지 않는 것으로 보입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: validate transport header presence in set_ipv6_addr When executing IPv6 address rewrite actions on IPv6 fragments, set_ipv6_addr() calls update_ipv6_checksum(). If parse_ipv6hdr() processes a non-first IPv6 fragment, it sets key->ip.proto to NEXTHDR_FRAGMENT and returns early without calling skb_set_transport_header(). update_ipv6_checksum() unconditionally evaluates skb_transport_offset() on entry before checking l4_proto. Because skb->transport_header is uninitialized, this triggers a warning under CONFIG_DEBUG_NET=y although it is completely harmless. Fix this by returning early in update_ipv6_checksum() if l4_proto is NEXTHDR_FRAGMENT. This avoids reading the uninitialized transport offset for fragments while preserving the debug warning for any other protocol where the transport header is unexpectedly missing. See the syzbot trace: !skb_transport_header_was_set(skb) WARNING: ./include/linux/skbuff.h:3075 at skb_transport_header include/linux/skbuff.h:3075 [inline], CPU#1: syz-executor463/5635 WARNING: ./include/linux/skbuff.h:3075 at skb_transport_offset include/linux/skbuff.h:3250 [inline], CPU#1: syz-executor463/5635 WARNING: ./include/linux/skbuff.h:3075 at update_ipv6_checksum net/openvswitch/actions.c:361 [inline], CPU#1: syz-executor463/5635 WARNING: ./include/linux/skbuff.h:3075 at set_ipv6_addr+0x462/0x660 net/openvswitch/actions.c:399, CPU#1: syz-executor463/5635 [...] RIP: 0010:skb_transport_header include/linux/skbuff.h:3075 [inline] RIP: 0010:skb_transport_offset include/linux/skbuff.h:3250 [inline] RIP: 0010:update_ipv6_checksum net/openvswitch/actions.c:361 [inline] RIP: 0010:set_ipv6_addr+0x462/0x660 net/openvswitch/actions.c:399 [...] Call Trace: <TASK> set_ipv6 net/openvswitch/actions.c:531 [inline] do_execute_actions+0x557e/0x8600 net/openvswitch/actions.c:1366 ovs_execute_actions+0xde/0x520 net/openvswitch/actions.c:1592 ovs_packet_cmd_execute+0xb4f/0xf10 net/openvswitch/datapath.c:705 genl_family_rcv_msg_doit+0x233/0x340 net/netlink/genetlink.c:1114 genl_rcv_msg+0x614/0x7a0 net/netlink/genetlink.c:1209 netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2572 genl_rcv+0x28/0x40 net/netlink/genetlink.c:1218 netlink_unicast+0x7bd/0x940 net/netlink/af_netlink.c:1361 netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1916 sock_sendmsg_nosec+0x14e/0x190 net/socket.c:800

📍 영향받는 시스템

Linux 커널 Open vSwitch(net/openvswitch) 모듈을 사용하는 시스템 (수정 커밋 이전 커널, CONFIG_DEBUG_NET=y 환경에서 경고 발생)

⚔️ 공격 벡터

로컬 또는 네트워크 상에서 IPv6 조각 패킷을 Open vSwitch 액션으로 처리하도록 유도하면 디버그 경고가 출력될 수 있으나, 악용 가능성은 확인되지 않음

🛡️ 대응 방법

Linux 커널을 해당 수정 사항이 포함된 최신 안정 버전으로 업데이트

🔧 검증 코드

커널 버전이 수정 패치가 반영된 버전 이상인지 확인하고, openvswitch 모듈 로드 여부와 CONFIG_DEBUG_NET 설정을 점검하며, 미로드 또는 미설정이면 영향이 없는 것으로 판단

Shell / Script
uname -r && (lsmod | grep openvswitch || echo 'openvswitch 모듈 미로드') && (grep CONFIG_DEBUG_NET /boot/config-$(uname -r) 2>/dev/null || echo 'config 확인 불가')

💻 영향받는 소프트웨어

Linux Kernel