CVE-2026-64566 в Ubuntu: уязвимость в обработке фрагментов ядра Linux

CVE: CVE-2026-64566
Продукт: Ubuntu
Дата публикации: 05.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,35%; процентиль 27,87%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


Уязвимость CVE-2026-64566 в ядре Linux Ubuntu связана с некорректной передачей флага SKBFL_SHARED_FRAG при копировании фрагментов пакетов. Это может привести к повреждению памяти и сбою ядра. Уязвимость затрагивает ряд версий ядра Linux, распространяемых через пакеты Ubuntu. Оценка риска — критическая.

Базовые сведения о записи CVE и оценке риска приведены в [1].

Основные характеристики​


CVE-2026-64566 описывает проблему в функции iptfs_skb_add_frags() ядра Linux. При копировании ссылок на фрагменты из исходного пакета в новый, функция увеличивает счетчик ссылок на страницы через __skb_frag_ref(), но не передает флаг SKBFL_SHARED_FRAG в skb_shinfo->flags нового пакета. Если исходный пакет содержит общие фрагменты (например, из пула страниц), новый внутренний пакет будет воспринят как имеющий частные фрагменты. При последующем вызове esp_input() для вложенного транспортного режима SA ядро использует оптимизацию «no-COW», что позволяет изменять данные напрямую. Однако, если данные всё ещё используются другим пакетом, это приводит к перезаписи памяти и повреждению данных. Уязвимость затрагивает версии ядра Linux, распространяемые через пакеты Ubuntu 16.04 LTS, 18.04 LTS и 20.04 LTS, включая специализированные сборки.

Какие продукты и версии затронуты​


Уязвимость CVE-2026-64566 затрагивает следующие версии Ubuntu и связанные с ними пакеты ядра Linux: Ubuntu 16.04 LTS с пакетом linux-hwe-edge, Ubuntu 18.04 LTS с пакетами linux-aws-5.0, linux-aws-5.3, linux-azure, linux-azure-5.3, linux-azure-edge, linux-gcp, linux-gcp-5.3, linux-gke-4.15, linux-gke-5.4, linux-gkeop-5.4, linux-hwe, linux-hwe-edge, linux-oem, linux-oracle-5.0, linux-oracle-5.3, Ubuntu 20.04 LTS с пакетами linux-aws-5.8, linux-aws-5.11, linux-aws-5.13, linux-azure-5.8, linux-azure-5.11, linux-azure-5.13, linux-gke, linux-gke-5.15, linux-gkeop, linux-gkeop-5.15, linux-hwe-5.8, linux-hwe-5.11, linux-hwe-5.13, linux-intel-5.13, linux-oem-5.10, linux-oem-5.13, linux-oem-5.14, linux-oem-5.6, linux-oracle-5.8, linux-oracle-5.11, linux-oracle-5.13, linux-raspi2, linux-riscv, linux-riscv-5.8, linux-riscv-5.11. Все указанные версии ядер, включая специализированные сборки, подвержены уязвимости.

Причина уязвимости​


Корневая причина уязвимости — неправильная передача флага SKBFL_SHARED_FRAG при копировании фрагментов пакетов. Функция iptfs_skb_add_frags() увеличивает счетчик ссылок на страницы, но не устанавливает флаг SKBFL_SHARED_FRAG в новом пакете. Это приводит к тому, что ядро считает фрагменты частными, даже если они являются общими. В результате, при использовании оптимизации «no-COW» ядро может изменять данные напрямую, перезаписывая страницы, которые всё ещё используются другим пакетом. Такая ситуация может привести к повреждению памяти и сбою ядра.

Как работает атака​


Атака происходит через механизм XFRM (eXtensible Frame eXtension Mechanism) в ядре Linux, особенно при работе с IPTFS (IP-in-TCP Fragmentation Support). Когда пакет содержит фрагменты, полученные из пула страниц (например, через page-pool), и эти фрагменты передаются в новый пакет, флаг SKBFL_SHARED_FRAG не передается. В дальнейшем, при вызове esp_input() для вложенного транспортного режима SA, ядро использует оптимизацию «no-COW», которая позволяет изменять данные напрямую. Однако, если данные ещё используются другим пакетом, это приводит к перезаписи памяти, что вызывает повреждение и сбои. Атакующий может использовать этот механизм для вызова паники ядра.

Условия успешной эксплуатации​


Для эксплуатации уязвимости необходим доступ к системе, где установлено затронутое ядро Linux, и возможность отправки специально подготовленных сетевых пакетов, которые активируют механизм XFRM с IPTFS. Также требуется, чтобы система использовала механизмы, связанные с page-pool и shared fragments. Уязвимость не может быть использована в автоматическом режиме без специфической настройки окружения. На момент анализа не подтверждено наличие публичного эксплойта.

Возможный сценарий атаки​


Сценарий атаки включает отправку сетевых пакетов, содержащих фрагменты, полученные из пула страниц. Эти пакеты проходят через механизм XFRM с IPTFS, где происходит копирование фрагментов. Из-за отсутствия флага SKBFL_SHARED_FRAG, ядро ошибочно считает фрагменты частными и применяет оптимизацию no-COW. В результате, при попытке дешифрации данных, происходит перезапись памяти, что приводит к повреждению и сбою ядра. Такой сценарий может быть использован для вызова паники ядра и отказа в обслуживании.

Есть ли публичный эксплойт​


На момент анализа не было подтверждено наличие публичного эксплойта для CVE-2026-64566. Отсутствие специфичных PoC или подтверждённых случаев эксплуатации не исключает потенциальную уязвимость. Наличие эксплойта не подтверждено, но риск использования уязвимости остаётся высоким из-за её критического уровня и наличия механизма для вызова сбоев ядра.

Признаки эксплуатации​


В случае эксплуатации уязвимости могут наблюдаться следующие признаки: сбои ядра, паники, отказы в обслуживании, аномальные записи в журнале ядра, особенно связанные с XFRM и IPTFS. Для точной диагностики необходимо использовать специализированные инструменты мониторинга и анализ логов. В отсутствие специфичных IOC, рекомендуется использовать общие точки контроля, такие как анализ сетевого трафика, мониторинг событий ядра и проверка версий ядер Linux.

Как обнаружить атаку​


Обнаружение уязвимости возможно через проверку установленных версий ядер Linux на предмет наличия CVE-2026-64566. Используются команды uname -r и apt-cache policy <имя-пакета> для получения информации о версиях ядер. Также можно использовать ubuntu-security-status для получения сводки по безопасности. Проверка наличия уязвимых пакетов в системе позволяет определить, нуждается ли система в обновлении.

Как проверить свою версию​


Для проверки версии ядра в Ubuntu можно использовать следующие команды: uname -r для получения текущей версии ядра, apt-cache policy <имя-пакета> для проверки установленных версий пакетов ядра, и ubuntu-security-status для получения сводки по безопасности. Например, для проверки пакета linux-hwe-edge следует выполнить apt-cache policy linux-hwe-edge. Вывод команды покажет, установлена ли версия, содержащая исправление уязвимости.

Исправление​


Рекомендуется немедленно применить исправления, доступные через обновления пакетов ядра. Обновления должны быть установлены для всех систем, использующих затронутые версии ядер Linux. Для Ubuntu 16.04 LTS — пакеты linux-hwe-edge, для Ubuntu 18.04 LTS — пакеты linux-aws, linux-azure, linux-gcp, linux-gke, linux-hwe, и другие. Для Ubuntu 20.04 LTS — аналогично, включая linux-hwe-5.8, linux-hwe-5.11, linux-hwe-5.13, linux-aws, linux-azure, linux-gke, linux-gkeop, и другие. После установки обновлений система будет защищена от уязвимости.

Временные меры защиты​


В отсутствие исправлений, временные меры защиты могут включать ограничение доступа к сетевым интерфейсам, использующим XFRM и IPTFS, и мониторинг сетевого трафика на предмет подозрительных пакетов. Также рекомендуется отключить ненужные модули ядра и ограничить использование механизмов, связанных с фрагментацией пакетов. Эти меры не обеспечивают полной защиты, но могут снизить риск эксплуатации уязвимости.

Как проверить устранение уязвимости​


После установки обновлений рекомендуется проверить, что версии ядер больше не содержат уязвимость. Это можно сделать с помощью команд uname -r и apt-cache policy <имя-пакета>. Также можно использовать ubuntu-security-status для проверки, что уязвимость устранена. Успешное применение исправлений должно привести к отсутствию уязвимости в системе.

Вывод​


CVE-2026-64566 представляет собой критическую уязвимость в ядре Linux, затрагивающую несколько версий Ubuntu. Она связана с некорректной передачей флага SKBFL_SHARED_FRAG при копировании фрагментов пакетов, что может привести к повреждению памяти и сбою ядра. Рекомендуется немедленно применить исправления через обновления пакетов. Временные меры защиты могут снизить риск, но не обеспечивают полной защиты. Проверка установленных версий ядер и применение обновлений — основные действия для устранения уязвимости.

Официальные источники​


  1. NVD — CVE-2026-64566
  2. Ubuntu OSV — CVE-2026-64566
  3. FIRST EPSS — CVE-2026-64566

История обновлений статьи​


  • 10.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ