CVE-2026-80921 в Linux Kernel: нарушение изоляции в KVM s390 и меры защиты

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

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


В ядре Linux обнаружена уязвимость в модуле KVM для архитектуры s390, позволяющая вложенной гостевой системе получить доступ к криптографическим устройствам, которые должны быть недоступны. Проблема возникает при копировании битов доступа из формата 0 APCB, когда часть данных не обнуляется. Статья разбирает механику ошибки, условия эксплуатации и способы проверки исправления.

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


Уязвимость затрагивает механизм виртуализации KVM на платформе s390 и позволяет нарушить изоляцию между вложенной гостевой системой и хостом. Риск связан с доступом к криптографическим ресурсам, которые должны быть отключены для данного уровня виртуализации.

  • Тип ошибки: Ошибка инициализации данных (stale data) при копировании структур управления криптографией.
  • CVSS: 8.8 (HIGH). Вектор: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. Это означает локальный доступ с низким порогом сложности и полным нарушением конфиденциальности, целостности и доступности.
  • Условия атаки: Локальный доступ (AV:L), низкие привилегии (PR:L), отсутствие взаимодействия пользователя (UI:N).
  • Эксплуатация: Подтвержденная эксплуатация в реальных атаках не зафиксирована.
  • EPSS: 0,13% (0.00126). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.

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


Уязвимость затрагивает ядра Linux, содержащие код модуля KVM для архитектуры s390, где реализована функция setup_apcb10 в файле arch/s390/kvm/vsie.c. Проблема была введена в коммите 6b79de4b056e и исправлена в коммите 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b.

  • Платформа: s390 (IBM Z).
  • Компонент: KVM (Kernel-based Virtual Machine), модуль vsie (Virtual Secure Intercept Extension).
  • Файл: arch/s390/kvm/vsie.c.
  • Функция: setup_apcb10.

Точные версии пакетов для конкретных дистрибутивов (Debian, Ubuntu, RHEL и др.) не указаны в предоставленных источниках. Рекомендуется проверять наличие коммита 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b в истории ядра вашего дистрибутива.

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


Причина уязвимости заключается в неполном обнулении структуры данных при подготовке APCB (Access Control Block) для формата 0 (crycb 0 или 1). Функция setup_apcb10 копирует биты доступа к криптографическим устройствам из хостовой структуры в гостевую.

При этом биты с 64 по 255 не изменялись и сохраняли значения, которые находились в странице vsie (Virtual Secure Intercept Extension) в момент предыдущего использования. Поскольку эти биты не обнулялись, вложенная гостевая система могла получить доступ к криптографическим устройствам, которые на самом деле были отключены или недоступны для данного уровня виртуализации.

Исправление заключается в добавлении вызова memset(apcb_s, 0, sizeof(*apcb_s)); перед копированием битов доступа. Это гарантирует, что все неиспользуемые биты будут обнулены, предотвращая доступ к «стальным» (stale) данным.

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


Атакующий должен иметь локальный доступ к системе с правами, достаточными для управления вложенной виртуальной машиной (L2) на платформе s390. Механизм атаки связан с манипуляцией структурой APCB, используемой для управления доступом к криптографическим устройствам.

  1. Атакующий создает или контролирует вложенную гостевую систему (L2).
  2. При инициализации или переконфигурации криптографических настроек L2, хостовый KVM вызывает функцию setup_apcb10 для подготовки APCB формата 0.
  3. Из-за отсутствия обнуления бит 64..255, в APCB L2 попадают значения, оставшиеся от предыдущего использования страницы vsie.
  4. Вложенная гостевая система использует эти биты для доступа к криптографическим устройствам, которые должны быть недоступны. Это нарушает изоляцию и может привести к утечке данных или выполнению команд на уровне хоста или других гостевых систем.

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


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

  • Платформа: Система должна работать на архитектуре s390 (IBM Z).
  • Виртуализация: Должен быть включен модуль KVM с поддержкой vsie (Virtual Secure Intercept Extension).
  • Вложенность: Должна использоваться вложенная виртуализация (L2 guest), где атакующий контролирует гостевую систему.
  • Доступ: Атакующий должен иметь локальный доступ к системе с правами, позволяющими управлять конфигурацией вложенной гостевой системы (PR:L).
  • Состояние данных: В памяти страницы vsie должны присутствовать «стальные» биты доступа, оставшиеся от предыдущих операций.

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


Сценарий атаки предполагает, что атакующий имеет доступ к вложенной гостевой системе (L2) на платформе s390. Он настраивает криптографические параметры L2 таким образом, чтобы хостовый KVM сгенерировал APCB формата 0.

При этом в памяти хоста, в области, используемой для vsie, остаются биты доступа, которые ранее указывали на доступные криптографические устройства. Поскольку функция setup_apcb10 не обнуляет биты 64..255, эти значения копируются в APCB L2.

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

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


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

  • PoC: Не опубликован.
  • Эксплуатация: Подтвержденных случаев эксплуатации в реальных атаках не зафиксировано.
  • Техническое описание: Доступно в коммитах исправления на git.kernel.org.

Отсутствие публичного эксплойта не означает, что уязвимость не может быть эксплуатирована. Учитывая локальный характер атаки и специфичность платформы s390, вероятность массовой эксплуатации в настоящее время низкая.

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


Специфичные индикаторы компрометации (IOC) для CVE-2026-80921 не предоставлены в официальных источниках. Однако можно использовать следующие неспецифичные точки контроля:

  • Журналы KVM: Аномальные запросы к криптографическим устройствам из вложенных гостевых систем.
  • Системные логи: Сообщения об ошибках или предупреждениях, связанных с модулем vsie или kvm_s390.
  • Мониторинг доступа: Необычная активность в криптографических подсистемах, не соответствующая ожидаемым сценариям использования.

Эти индикаторы не являются уникальными для данной уязвимости и требуют дополнительной верификации в контексте конкретной инфраструктуры.

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


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

  • Проверка версии ядра: Убедиться, что ядро содержит коммит 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b.
  • Аудит конфигурации KVM: Проверить, используется ли вложенная виртуализация на платформе s390.
  • Мониторинг логов: Анализировать логи ядра и KVM на предмет аномальных операций с криптографическими устройствами.
  • Сканирование уязвимостей: Использовать инструменты сканирования, поддерживающие CVE-2026-80921, для автоматической проверки систем.

Поскольку уязвимость затрагивает специфичный код для s390, стандартные сканеры могут не покрывать этот случай. Ручная проверка коммитов ядра является наиболее надежным методом.

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


Для проверки версии ядра и наличия исправления используйте следующие команды:

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

Затем проверьте, содержит ли ваше ядро коммит 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b. Для этого можно использовать git в исходниках ядра или обратиться к документации вашего дистрибутива. Если вы используете бинарное ядро, проверьте, включено ли исправление в вашу версию, сверяясь с changelog дистрибутива.

Пример проверки в исходниках:

Bash:
git log --oneline | grep 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b

Если коммит отсутствует, система уязвима.

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


Основным способом устранения уязвимости является обновление ядра Linux до версии, содержащей коммит 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b.

  • Обновление ядра: Установите последнюю доступную версию ядра от вашего дистрибутива, которая включает исправление.
  • Проверка: После обновления убедитесь, что коммит присутствует в истории ядра.
  • Перезагрузка: В некоторых случаях может потребоваться перезагрузка системы для применения нового ядра.

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

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


Если обновление ядра невозможно, можно применить следующие временные меры:

  • Отключение вложенной виртуализации: Если вложенные гостевые системы (L2) не используются, отключите поддержку vsie или KVM для s390, чтобы исключить возможность эксплуатации.
  • Изоляция гостевых систем: Ограничьте доступ к криптографическим устройствам для вложенных гостевых систем, если это позволяет конфигурация.
  • Мониторинг: Усиленный мониторинг логов KVM и криптографических подсистем для выявления аномальной активности.

Эти меры не устраняют уязвимость, но снижают вероятность успешной атаки. Они должны рассматриваться как временное решение до применения официального исправления.

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


Для верификации применения исправления выполните следующие шаги:

  1. Проверка версии ядра: Убедитесь, что система работает на ядре, содержащем коммит 34d5b5b646c91cfb9338d7a12c955a70ffb8c66b.
  2. Проверка коммита: Используйте git log или инструменты дистрибутива для подтверждения наличия исправления.
  3. Функциональное тестирование: Проведите тестирование вложенной виртуализации на s390, чтобы убедиться, что доступ к криптографическим устройствам корректно изолирован.
  4. Мониторинг: Продолжайте мониторинг логов на предмет аномальной активности после обновления.

Если все проверки пройдены, система считается защищенной от CVE-2026-80921.

Вывод​


CVE-2026-80921 представляет собой серьезную уязвимость в модуле KVM для архитектуры s390, позволяющую нарушить изоляцию вложенных гостевых систем и получить доступ к криптографическим устройствам. Риск эксплуатации локализован и требует специфичных условий, но последствия могут быть значительными.

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

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


  1. NVD — CVE-2026-80921
  2. FIRST EPSS — CVE-2026-80921
  3. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  4. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  5. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  6. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  7. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  8. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  9. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree
  10. KVM: s390: vsie: zero stale crypto bits - kernel/git/stable/linux.git - Linux kernel stable tree

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


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