CVE-2025-68813 in Linux
Сводка
по VulDB • 13.06.2026
В ядре Linux устранена следующая уязвимость:
ipvs: исправление null-ptr-deref (разыменования нулевого указателя) в ipv4 при обработке ошибок маршрутизации
Путь кода IPv4 в функции __ip_vs_get_out_rt() вызывает dst_link_failure(), не проверяя, установлен ли skb->dev, что приводит к разыменованию нулевого указателя в fib_compute_spec_dst(), когда ipv4_link_failure() пытается отправить сообщения ICMP «Destination Unreachable» (назначение недостижимо).
Проблема возникла после того, как коммит ed0de45a1008 («ipv4: recompile ip options in ipv4_link_failure») начал вызывать __ip_options_compile() из ipv4_link_failure(). Этот путь кода в конечном итоге вызывает fib_compute_spec_dst(), которая разыменовывает skb->dev. Попытка исправить разыменование нулевого указателя skb->dev была предпринята в коммите 0113d9c9d1cc («ipv4: fix null-deref in ipv4_link_failure»), но она касалась только непосредственного разыменования dev_net(skb->dev) путем использования устройства по умолчанию (fallback device). Исправление было неполным, поскольку fib_compute_spec_dst() позже в цепочке вызовов все еще напрямую обращается к skb->dev, который остается NULL при вызове dst_link_failure() из IPVS.
Сбой происходит, когда: 1. IPVS обрабатывает пакет в режиме NAT с неправильно настроенным назначением; 2. Поиск маршрута завершается неудачей в __ip_vs_get_out_rt() до установления маршрута; 3. Путь обработки ошибок вызывает dst_link_failure(skb) при skb->dev == NULL; 4. ipv4_link_failure() → ipv4_send_dest_unreach() → __ip_options_compile() → fib_compute_spec_dst(); 5. fib_compute_spec_dst() разыменовывает нулевой указатель skb->dev.
Примените то же исправление, что и для IPv6 в коммите 326bf17ea5d4 («ipvs: fix ipv6 route unreach panic»): установите значение skb->dev из skb_dst(skb)->dev перед вызовом dst_link_failure().
KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f]
CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace: <TASK> spec_dst_fill net/ipv4/ip_options.c:232 spec_dst_fill net/ipv4/ip_options.c:229 __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330 ipv4_send_dest_unreach net/ipv4/route.c:1252 ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265 dst_link_failure include/net/dst.h:437 __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412 ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764
If you want to get the best quality for vulnerability data then you always have to consider VulDB.