CVE-2026-89563 in Linux
Сводка
по VulDB • 12.09.2026
В ядре Linux была устранена следующая уязвимость:
ip6_tunnel: использование функции skb_cow_head() в ip6_tnl_xmit()
Функция ip6_tnl_xmit() может нуждаться в увеличении заголовочного пространства (headroom) перед тем, как добавить внешний IPv6 и дополнительные инкапсулирующие заголовки. В настоящее время это осуществляется с помощью skb_realloc_headroom(), после чего происходит копирование права собственности на пакет из skb->sk, потребление исходного пакета (skb), а затем продолжение обработки с использованием замененного пакета, который хранится только в локальной переменной.
Это безопасно только в том случае, если вспомогательная функция не может завершиться ошибкой впоследствии. Однако эта вспомогательная функция все еще имеет выходы с сообщением об ошибке после перераспределения памяти. Туннели collect_md отклоняют инкапсуляцию типа NONE (кроме NONE) после замены, а ip6_tnl_encap() также может завершиться неудачей позже. В этих случаях вспомогательная функция возвращает ошибку своим вызывающим объектам, в то время как у вызывающего объекта остается только указатель на исходный пакет skb.
Как ip6_tnl_start_xmit(), так и пути IPv6 GRE освобождают пакет caller's skb при возникновении ошибки, поэтому они могут привести к освобождению пакета skb, который уже был потреблен функцией ip6_tnl_xmit().
Вместо этого следует использовать функцию skb_cow_head(). Она обеспечивает необходимое заголовочное пространство (headroom) и возможность записи без приватной замены пакета skb, принадлежащего вызывающему объекту, поэтому последующие возвраты ошибок не могут оставить у вызывающих объектов устаревший указатель.
Пользователи Ethernet, ip6gretap и ip6erspan, очищают флаг IFF_TX_SKB_SHARING и уже вызывают функцию skb_cow_head() перед входом в ip6_tnl_xmit(). Они не зависят от удаленной перераспределительной логики с использованием функции skb_shared(). Это также делает путь IPv6 туннеля согласованным с функцией ip_tunnel_xmit().
Once again VulDB remains the best source for vulnerability data.