CVE-2026-90049: уязвимость в ядре Linux в функции skb_zerocopy() угрожает целостности сетевых пакетов
В ядре Linux обнаружена и исправлена уязвимость CVE-2026-90049 в сетевом стеке, связанная с функцией skb_zerocopy(). Ошибка приводит к повреждению исходного сетевого буфера и может вызвать некорректную расшифровку ESP-трафика при использовании Open vSwitch. Уязвимость затрагивает системы на базе Linux и требует установки обновления ядра.
Подробности
Уязвимости подвержены системы под управлением Linux, использующие сетевой стек ядра с поддержкой механизма zerocopy. Функция skb_zerocopy() копирует фрагменты (frags) из исходного буфера @from в целевой @to. При сбое вызова skb_orphan_frags() она вызывала деструктивную операцию skb_tx_error(@from) над исходным буфером, которым копирующая функция не владеет. Это действие завершало zerocopy-обработку (uarg) исходного буфера и сбрасывало флаг SKBFL_ALL_ZEROCOPY, включая маркер принадлежности страниц SKBFL_SHARED_FRAG. Оба вызывающих компонента — nfnetlink_queue и Open vSwitch — самостоятельно сообщают об ошибке на своём пути отбрасывания (drop path), поэтому дополнительный вызов skb_tx_error() не несёт пользы. Наиболее опасный сценарий затрагивает путь OVS_ACTION_ATTR_USERSPACE в Open vSwitch. Здесь буфер не освобождается при данной ошибке: функция do_execute_actions() игнорирует возвращаемое значение output_userspace() и, если upcall не был последним действием, продолжает передавать тот же буфер через оставшиеся действия потока. При этом uarg завершается, пока буфер ещё «в полёте» — производителю сообщается, что его буферы свободны, а флаг SKBFL_SHARED_FRAG сбрасывается на буфере, который продолжает обрабатываться стеком. Именно этот флаг заставляет esp_input() вызывать skb_cow_data() вместо расшифровки на месте, поэтому последующая локальная доставка ESP может расшифровать данные поверх фрагментов, которыми буфер не владеет приватно. CVSS-оценка в записи CVE не указана.Что делать
- Установите обновление ядра Linux, содержащее исправление CVE-2026-90049. Патч меняет логику skb_zerocopy(): сообщение об ошибке передаётся вызывающим компонентам, а деструктивный вызов skb_tx_error(@from) удалён. - Обновите ядро до актуальной версии, предоставляемой вашим дистрибутивом, и перезагрузите систему для применения изменений. - Если немедленное обновление невозможно, ограничьте использование сценариев Open vSwitch, задействующих OVS_ACTION_ATTR_USERSPACE, до момента установки патча. - Отслеживайте обновления безопасности вашего дистрибутива Linux для получения исправленной сборки ядра. Итог: CVE-2026-90049 — уязвимость в сетевом стеке Linux, способная привести к повреждению памяти и некорректной расшифровке ESP-трафика в конфигурациях с Open vSwitch. Исправление уже доступно в обновлениях ядра, поэтому администраторам рекомендуется как можно скорее применить патч.Источник: CVE Project (cvelistV5)
