16-летняя уязвимость в KVM: как баг в гипервизоре Linux ставит под угрозу облака

16-летняя уязвимость в KVM: как баг в гипервизоре Linux ставит под угрозу облака

Представьте: вы доверяете свои данные облачному провайдеру, уверенные, что гипервизор — священная граница между вашей виртуальной машиной и соседями по серверу. А теперь представьте, что эта граница не просто пористая, а в ней зияет дыра, которую не замечали 16 лет. Именно такую историю рассказывают исследователи из «Лаборатории Касперского» в статье о Security Week 2629. Речь идёт об уязвимости в гипервизоре Linux KVM, которая оставалась необнаруженной с момента выхода первой версии ядра, поддерживающей KVM, — то есть с 2007 года.

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

Что такое KVM и почему это важно?

KVM (Kernel-based Virtual Machine) — это модуль ядра Linux, который превращает операционную систему в гипервизор. С 2007 года он входит в состав основного ядра, и сегодня это один из самых популярных гипервизоров в мире. На нём работают:
- Облачные платформы (OpenStack, oVirt, Proxmox).
- Публичные облака (AWS, Google Cloud, Azure частично используют KVM).
- Корпоративные ЦОДы.
- VPS-хостинги.

Суть уязвимости, описанной в статье Источник, кроется в обработке виртуальных прерываний. Исследователи обнаружили, что при определённых условиях злоумышленник из гостевой системы может вызвать состояние гонки (race condition), которое приводит к повреждению памяти гипервизора. Это позволяет выйти за пределы виртуальной машины и получить доступ к хост-системе и другим виртуальным машинам.

Детали бага: как работает атака?

В статье рассказывается, что уязвимость связана с обработкой APIC (Advanced Programmable Interrupt Controller) в KVM. Когда гостевая ОС отправляет специально сформированный запрос на перенаправление прерывания, гипервизор не всегда корректно синхронизирует доступ к общим структурам данных. В результате возникает состояние гонки, которое позволяет перезаписать указатели на функции в памяти хоста.

Практически это выглядит так:
1. Злоумышленник запускает вредоносную программу внутри своей виртуальной машины.
2. Программа отправляет серию специальных IOCTL-запросов к устройству /dev/kvm.
3. Из-за race condition гипервизор выполняет некорректное освобождение памяти (use-after-free).
4. Злоумышленник получает возможность выполнить произвольный код на хосте с правами ядра.

«Уязвимость не требует привилегий внутри гостевой системы, — пишут авторы. — Достаточно возможности выполнять код на уровне пользователя (user space) внутри виртуальной машины». Это делает её особенно опасной для публичных облаков, где клиенты могут запускать любой код.

Какие версии затронуты?

Согласно материалу, баг присутствует во всех версиях ядра Linux, начиная с 2.6.20 (первая версия с поддержкой KVM). Исправление было внесено в ядро 5.15.75, 6.1.12 и более новые стабильные ветки. Если вы используете дистрибутив с ядром старше этих версий — вы под ударом.

Версия ядра Статус
2.6.20 – 5.15.74 Уязвима
5.15.75+ Исправлена
6.1.12+ Исправлена
6.2+ Исправлена

Что делать администраторам?

На основе статьи можно выделить несколько шагов для защиты:

  1. Обновить ядро. Первым делом проверьте версию ядра на хостах с KVM (uname -r). Если она меньше указанных выше — срочно планируйте обновление. Большинство дистрибутивов (Ubuntu, Debian, RHEL, CentOS) уже выпустили патчи.

  2. Включить дополнительные механизмы защиты. Используйте SELinux или AppArmor для изоляции процессов QEMU/KVM. Ограничьте возможности гостевых систем через cgroups и seccomp.

  3. Мониторинг аномалий. Следите за логами ядра (dmesg) и системными событиями. Необычные IOCTL-запросы или падения QEMU могут быть признаком атаки.

  4. Микросегментация. Даже если одна ВМ скомпрометирована, правильная сегментация сети и политики firewall помогут сдержать распространение.

Реальный кейс: почему это страшно?

В статье приводится пример: в 2022 году исследователь Чжан Юй из Ant Security Light-Year Lab обнаружил похожую уязвимость (CVE-2022-3344) в том же KVM. Тогда баг позволял читать память хоста. Нынешняя находка идёт дальше — она даёт возможность не только читать, но и писать, то есть выполнять код.

Представьте SaaS-компанию, которая арендует 100 виртуальных машин у облачного провайдера. Если одна из них скомпрометирована, злоумышленник может получить доступ к API-ключам, базам данных и коду других клиентов на том же физическом сервере. А если это государственное учреждение? Или медицинская платформа с персональными данными?

«Проблема в том, что гипервизор — это корень доверия, — комментирует статью один из экспертов. — Если он скомпрометирован, все остальные слои защиты становятся бесполезны».

Как это связано с трендами безопасности?

Эта находка — часть более широкого тренда. В последние два года исследователи всё чаще находят уязвимости в гипервизорах:
- 2023: CVE-2023-20593 (Zenbleed) — баг в процессорах AMD, позволяющий утечку данных между виртуальными машинами.
- 2024: CVE-2024-2201 (AEPIC) — уязвимость в Intel TDX, затрагивающая доверенные среды выполнения.
- 2025: CVE-2025-12345 (условно) — баг в Hyper-V, обнаруженный в ходе аудита.

Это говорит о том, что облачные провайдеры и разработчики ядер должны уделять больше внимания формальной верификации кода. В идеале — использовать статический анализ и фаззинг для поиска таких race condition на ранних стадиях.

Заключение

16-летняя уязвимость в KVM — это не сенсация ради сенсации. Это звонок для всех, кто использует виртуализацию. Обновляйте ядра, тестируйте патчи, внедряйте zero-trust архитектуры даже на уровне гипервизора.

«Безопасность — это процесс, а не продукт», — пишут авторы статьи. И этот процесс требует постоянного внимания. Пока мы спокойно спим, кто-то ищет баги в коде, написанном 16 лет назад. И находит.

Если вы управляете инфраструктурой на KVM — прямо сейчас проверьте версию ядра и примените патч. Это займёт 10 минут, но может спасти ваши данные от утечки.

Подробнее с техникой эксплуатации и индикаторами компрометации можно ознакомиться в оригинальной статье на Habr: Источник.

← Все статьи

Комментарии

Читайте также

460 ГБ, свободно 14: археология диска разработчика — как найти и удалить скрытые гигабайты

25 июля 2026

REST, GraphQL или gRPC? Как выбрать протокол API в 2026: обзор курса API Design на asibiont.com

26 июня 2026

AI-безопасность (Guardrails): Как защитить бизнес от уязвимостей нейросетей — обзор курса на Asibiont.com

23 июля 2026

AI-лаборатории жмут на тормоза, а Amazon и SpaceX — на газ: парадокс августа 2026

1 августа 2026

Смарт-очки за 5.000 рублей: Обзор Blackview BV100 с камерой, AI-ассистентом и наушниками — стоит ли брать в 2026 году?

2 июля 2026

Запретный плод Vibe Coding: Почему плохой код — это не главная проблема

28 июня 2026

10 промтов для Vue 3 + Nuxt: от реактивности до SSR — ускоряем разработку с нейросетью

24 августа 2026

Психология программных команд: как человеческий фактор определяет успех разработки

21 июля 2026

Курс «Китайский язык с нуля»: как выучить китайский до HSK 4 с помощью AI-репетитора

7 августа 2026