CVE-2026-80753 в Linux Kernel: гонка при выгрузке ovpn, уязвимые версии и защита

CVE: CVE-2026-80753
Продукт: Linux Kernel
Дата публикации: 03.09.2026
Критичность: HIGH
CVSS: 8.4 (3.1)
EPSS: 0,12%; процентиль 2,25%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В драйвере ovpn ядра Linux обнаружена уязвимость, связанная с выполнением отложенных задач после освобождения кода модуля. При выгрузке драйвера workqueue-функции могут обращаться к уже освобождённой памяти, что приводит к повреждению состояния ядра. Материал описывает механику гонки, условия эксплуатации и порядок проверки исправления.

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


Риск заключается в обращении к освобождённой памяти (use-after-free) при выгрузке модуля ovpn. Локальный пользователь без привилегий может вызвать сбой ядра или потенциально повысить привилегии, если драйвер активен.

  • Тип ошибки: use-after-free при выгрузке модуля (CWE не присвоен).
  • CVSS: 8.4 (HIGH), вектор CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
  • Условия атаки: локальный доступ, отсутствие необходимости в пользовательском взаимодействии.
  • Эксплуатация: подтверждённых фактов активной эксплуатации в дикой природе нет.
  • EPSS: 0,12% (0.00122), что указывает на низкую вероятность эксплуатации в ближайшие 30 дней.

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


Затронуты версии ядра Linux, содержащие драйвер ovpn с отложенными задачами, выполняемыми на глобальных workqueues. Точные номера версий не указаны в источниках, но исправление распространяется на стабильные ветки.

  • Компонент: драйвер ovpn (drivers/net/ovpn/).
  • Файлы: main.c, ovpnpriv.h, peer.c, tcp.c.
  • Исправление: коммиты e9714db8041763f59dde152c812b96b3de05c6d9 (mainline), bbe81f40582d451ac849b20707784220f33a23bd и b5fe67111e63a8a81ec31056c4475509076fd266 (stable).

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


Драйвер ovpn использует глобальные системные workqueues для отложенных задач (keepalive, TCP-операции). При выгрузке модуля нет механизма, гарантирующего завершение этих задач до освобождения кода модуля.

Ссылки на объекты защищают данные, но не гарантируют возврат из функции workqueue. Worker может удалить последнюю ссылку, разблокируя размонтирование устройства, пока всё ещё выполняет код ovpn. Это приводит к обращению к освобождённой памяти.

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


Атакующий вызывает выгрузку модуля ovpn (например, через rmmod ovpn или удаление сетевого интерфейса). В этот момент отложенные задачи могут всё ещё выполняться на глобальных workqueues.

После освобождения кода модуля выполнение задач продолжается, обращаясь к уже освобождённой памяти. Это приводит к повреждению памяти, сбою ядра или потенциальному повышению привилегий. Исправление вводит выделенный workqueue модуля, который сбрасывается перед освобождением кода.

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


Для успешной эксплуатации необходимо:

  • Локальный доступ к системе (PR:N в CVSS означает, что привилегии не требуются, но доступ должен быть).
  • Активный драйвер ovpn в ядре.
  • Возможность инициировать выгрузку модуля или удаление сетевого интерфейса ovpn.
  • Точное совпадение тайминга: задача должна выполняться в момент освобождения кода модуля.

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


  1. Атакующий имеет локальный доступ к системе с активным ovpn-интерфейсом.
  2. Инициирует выгрузку модуля ovpn или удаление интерфейса.
  3. В момент выгрузки отложенные задачи (keepalive, TCP) всё ещё выполняются на глобальных workqueues.
  4. Код модуля освобождается, но задачи продолжают выполняться, обращаясь к освобождённой памяти.
  5. Происходит сбой ядра или потенциальное повышение привилегий.

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


Публичный эксплойт не подтверждён. В источниках отсутствуют сведения о PoC, техническом описании атаки или подтверждённой эксплуатации в реальных атаках. Отсутствие данных не означает отсутствие эксплойта, но на текущий момент он не опубликован.

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


Специфичные IOC для этой уязвимости не определены. Общие неспецифичные признаки:

  • Сбои ядра (kernel panic) при выгрузке модуля ovpn.
  • Записи в dmesg или journalctl об ошибках в драйвере ovpn.
  • Необъяснимые перезагрузки системы при работе с ovpn-интерфейсами.

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


Для обнаружения потенциальной эксплуатации:

  • Мониторинг dmesg и journalctl на ошибки в драйвере ovpn.
  • Проверка логов на аномальные выгрузки модулей ovpn.
  • Анализ записей о сбоях ядра (kernel oops/panic) с упоминанием ovpn.
  • Использование инструментов аудита (auditd) для отслеживания вызовов rmmod или ip link delete для ovpn-интерфейсов.

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


Проверка версии ядра и наличия исправления:

Bash:
uname -r
uname -a
cat /proc/version

Для проверки наличия конкретного исправления в ядре (если доступно):

Bash:
git log --oneline | grep -i "ovpn: run deferred work"

Или проверка через modinfo ovpn (если модуль доступен):

Bash:
modinfo ovpn | grep -i version

Замените <имя-пакета> на фактическое имя пакета ядра в вашей дистрибуции при проверке через пакетный менеджер.

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


Основной способ исправления — обновление ядра до версии, содержащей коммиты:

  • e9714db8041763f59dde152c812b96b3de05c6d9 (mainline)
  • bbe81f40582d451ac849b20707784220f33a23bd (stable)
  • b5fe67111e63a8a81ec31056c4475509076fd266 (stable)

Обновите ядро через пакетный менеджер вашей дистрибуции. После обновления перезагрузите систему для применения нового ядра.

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


До применения исправления:

  • Избегайте выгрузки модуля ovpn на системах, где он критичен.
  • Ограничьте локальный доступ к системам с активным ovpn-драйвером.
  • Используйте modprobe -r ovpn только в контролируемых условиях.
  • Рассмотрите использование пользовательского пространства (userspace) для ovpn-туннелей, если это допустимо.

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


После обновления ядра:

  1. Проверьте версию ядра: uname -r.
  2. Убедитесь, что новый ядро загружен: cat /proc/version.
  3. Проверьте наличие исправления в логах сборки ядра (если доступно): git log | grep ovpn.
  4. Проведите функциональное тестирование ovpn-интерфейсов для подтверждения работоспособности.

Вывод​


CVE-2026-80753 представляет собой серьёзную уязвимость в драйвере ovpn, связанную с гонкой при выгрузке модуля. Риск локализован и требует активного использования ovpn.

Обновление ядра до версии с исправлением является обязательным для систем, использующих ovpn. До обновления рекомендуется ограничить локальный доступ и избегать выгрузки модуля.

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


  1. NVD — CVE-2026-80753
  2. FIRST EPSS — CVE-2026-80753
  3. ovpn: run deferred work on a module-owned workqueue - kernel/git/stable/linux.git - Linux kernel stable tree
  4. ovpn: run deferred work on a module-owned workqueue - kernel/git/stable/linux.git - Linux kernel stable tree
  5. ovpn: run deferred work on a module-owned workqueue - kernel/git/stable/linux.git - Linux kernel stable tree
  6. CVEs — The Linux Kernel documentation

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


  • 04.09.2026 — Опубликована первая версия материала.
  • 08.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ