CVE: CVE-2026-80615
Продукт: Linux Kernel
Дата публикации: 28.08.2026
Критичность: HIGH
CVSS: 8.2 (3.1)
EPSS: 0,35%; процентиль 27,99%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Linux Kernel устранена проблема в функции
tun_dst_unclone, вызывающая ложное срабатывание механизма защиты от переполнения буфера (memcpy overflow) при обработке туннелей GENEVE.Ошибка возникает при компиляции с clang и source fortification, приводя к срабатыванию
__fortify_report и потенциальному прерыванию работы.Исправление разбивает копирование данных на два этапа, чтобы корректно определить длину буфера. Обновление критично для систем, использующих туннели и скомпилированных с усиленной защитой, так как ложное срабатывание может нарушить сетевую функциональность.
Основные характеристики
Риск связан не с реальным переполнением памяти, а с ложным срабатыванием встроенной защиты ядра, что может привести к отказу в обслуживании сетевых функций при обработке туннелей. Метрики отражают потенциальное влияние на доступность, но вероятность эксплуатации в реальных атаках крайне мала.
- Тип ошибки: Ложное срабатывание защиты (false-positive) при проверке memcpy. Механизм fortification ошибочно интерпретирует корректную операцию как переполнение буфера.
- CVSS:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H(8.2, HIGH). Высокая оценка обусловлена сетевым вектором и влиянием на доступность, хотя фактическая эксплуатация как уязвимости маловероятна.
- Условия атаки: Требуется компиляция ядра с clang и включенным source fortification, а также активное использование туннелей GENEVE.
- Факт эксплуатации: Подтвержденных случаев эксплуатации в реальных атаках нет. Ошибка обнаружена при разработке и тестировании.
- EPSS: 0,35% (процентиль 27,99%). Низкая вероятность эксплуатации в ближайшие 30 дней, что соответствует статусу «ложное срабатывание».
Какие продукты и версии затронуты
Затронуты версии Linux Kernel, содержащие функцию
tun_dst_unclone в файле include/net/dst_metadata.h и скомпилированные с clang и source fortification. Конкретные номера версий не указаны в источниках, но исправление внесено в stable-ветки ядра.- Компонент: Подсистема
net: dst_metadata, отвечающая за метаданные туннелей.
- Функция:
tun_dst_unclone, вызываемая при обработке пакетов GENEVE.
- Условие сборки: Ядро должно быть скомпилировано с clang и включенным source fortification (CONFIG_FORTIFY_SOURCE).
- Исправление: Внесено в stable-ветки ядра, см. ссылки на коммиты в разделе «Исправление».
Причина уязвимости
Причина кроется в несовпадении между метаданными структуры и фактическим размером выделяемой памяти. Функция
kmalloc_flex() в metadata_dst_alloc() устанавливает атрибут __counted_by для структуры на значение options_len, которое затем инициализируется нулем. При последующем копировании туннельной информации вместе с опциями компилятор оценивает, что опции не помещаются в структуру, хотя память для них фактически выделена.Это приводит к срабатыванию механизма защиты
__fortify_report, который интерпретирует операцию как переполнение буфера. Проблема возникает из-за того, что длина options_len изменяется после выделения памяти, что затрудняет корректную проверку границ при компиляции с clang и source fortification.Как работает атака
Атака не является классической эксплуатацией уязвимости, а представляет собой сценарий, при котором легитимная сетевая операция приводит к ложному срабатыванию защиты. При обработке пакетов GENEVE функция
tun_dst_unclone копирует туннельную информацию, включая опции, в новую структуру. Из-за некорректного определения длины буфера механизм fortification срабатывает, вызывая __fortify_report и потенциально прерывая работу.Следствием может стать отказ в обслуживании сетевых функций, так как ядро может прервать обработку пакета или завершить работу процесса. Однако это не приводит к удаленному выполнению кода или повышению привилегий, а лишь к нарушению доступности.
Условия успешной эксплуатации
Для срабатывания проблемы необходимо соблюдение следующих условий:
- Ядро скомпилировано с clang и включенным source fortification (CONFIG_FORTIFY_SOURCE).
- Активно используются туннели GENEVE, вызывающие функцию
tun_dst_unclone.
- В туннеле присутствуют опции, размер которых приводит к несовпадению с метаданными
__counted_by.
- Система обрабатывает сетевой трафик, проходящий через GENEVE-туннель.
Возможный сценарий атаки
Сценарий срабатывания: администратор настраивает GENEVE-туннель с опциями для маршрутизации трафика. При обработке первого пакета с опциями функция
tun_dst_unclone пытается скопировать туннельную информацию.Механизм fortification, некорректно оценив размер буфера, срабатывает, вызывая
__fortify_report. Ядро прерывает обработку пакета, что приводит к потере трафика или сбое в работе сетевого сервиса.Пользователи могут наблюдать ошибки в логах ядра и нарушение сетевой связности.
Есть ли публичный эксплойт
Публичный эксплойт отсутствует. Ошибка была обнаружена при разработке и тестировании, а не в ходе реальных атак.
В источниках нет сведений о PoC, техническом описании атаки или подтвержденной эксплуатации. Отсутствие эксплойта не означает, что проблема неактуальна, но подтверждает, что риск связан с ложным срабатыванием защиты, а не с возможностью удаленного компрометирования системы.
Признаки эксплуатации
Специфичных IOC для этой проблемы нет, так как она не связана с атакой, а с ложным срабатыванием защиты. Общие точки контроля (неспецифичные):
- Записи в логах ядра, содержащие
__fortify_reportиmemcpy: detected buffer overflow.
- Сбои в работе сетевых сервисов, использующих GENEVE-туннели.
- Ошибки в логах приложений, связанных с обработкой туннельного трафика.
Эти признаки могут указывать на проблему, но также могут быть вызваны другими причинами, поэтому требуют дополнительной диагностики.
Как обнаружить атаку
Для обнаружения проблемы необходимо анализировать логи ядра на наличие записей
__fortify_report и memcpy: detected buffer overflow. Также следует проверять логи сетевых сервисов на признаки сбоев при обработке GENEVE-трафика.Специфичных IOC нет, поэтому диагностика должна включать проверку конфигурации ядра (clang, source fortification) и мониторинг сетевой функциональности. Рекомендуется использовать инструменты аудита ядра и сетевых логов для выявления аномалий.
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Эти команды покажут текущую версию ядра. Для проверки наличия конкретного исправления необходимо сверить версию с релизными заметками дистрибутива или проверить наличие коммитов
4c6d43db2a4d2cef3921e885cf34798f790d34ea и 7ce31739fe88a558370135db95bbeec1e7ddfc29 в истории ядра. Если используется дистрибутив, проверьте обновления через пакетный менеджер.Исправление
Исправление внесено в stable-ветки Linux Kernel. Необходимо обновить ядро до версии, содержащей коммиты
4c6d43db2a4d2cef3921e885cf34798f790d34ea и 7ce31739fe88a558370135db95bbeec1e7ddfc29. Ссылки на коммиты:Для пользователей дистрибутивов рекомендуется установить обновления через пакетный менеджер. Если обновление невозможно, рассмотрите отключение source fortification или перекомпиляцию ядра без clang, хотя это снижает общую безопасность.
Временные меры защиты
Пока обновление не установлено, можно временно снизить риск, отключив source fortification при компиляции ядра или переключившись на компилятор GCC, если это допустимо. Также можно ограничить использование GENEVE-туннелей с опциями, если это не критично для инфраструктуры.
Однако эти меры не устраняют проблему полностью, а лишь снижают вероятность срабатывания. Рекомендуется планировать обновление ядра в ближайшем окне обслуживания.
Как проверить устранение уязвимости
После обновления ядра проверьте, что проблема устранена, проведя тестирование GENEVE-туннелей с опциями. Убедитесь, что в логах ядра отсутствуют записи
__fortify_report и memcpy: detected buffer overflow.Также проверьте, что сетевая функциональность работает корректно. Для автоматической проверки можно использовать скрипты, которые генерируют тестовый трафик через GENEVE-туннель и анализируют логи на наличие ошибок.
Вывод
CVE-2026-80615 представляет собой ложное срабатывание механизма защиты ядра, а не классическую уязвимость. Риск связан с нарушением доступности сетевых функций при обработке GENEVE-туннелей, но не с удаленным компрометированием.
Обновление ядра до версии с исправлением критично для систем, использующих туннели и скомпилированных с clang и source fortification. Откладывать обновление не рекомендуется, так как ложное срабатывание может нарушить сетевую функциональность и привести к сбоям в работе критичных сервисов.
Официальные источники
- NVD — CVE-2026-80615
- FIRST EPSS — CVE-2026-80615
- net: dst_metadata: fix false-positive memcpy overflow in tun_dst_unclone - kernel/git/stable/linux.git - Linux kernel stable tree
- net: dst_metadata: fix false-positive memcpy overflow in tun_dst_unclone - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 02.09.2026 — Опубликована первая версия материала.
