Mastodon Mastodon Mastodon Mastodon

Вразливість Januscape в KVM: use-after-free у shadow MMU

Photo of author

CyberSecureFox Editorial Team

Опубліковано:

У гіпервізорі KVM ядра Linux виявлена вразливість типу use-after-free (CVE-2026-53359), яка дозволяє з гостьової віртуальної машини пошкодити стан тіньових сторінок ядра хоста. Уразливий код був присутній у ядрі з 2010 року — близько 16 років. Публічний PoC-експлойт під назвою Januscape демонструє гарантований крах хоста, що призводить до відмови в обслуговуванні для всіх віртуальних машин на фізичному сервері. Проблема стосується x86-хостів на процесорах Intel і AMD з увімкненою вкладеною віртуалізацією. Виправлення доступне — адміністраторам мультиорендних KVM-середовищ слід застосувати патч у пріоритетному порядку.

Технічна суть вразливості

Помилка знаходиться в коді shadow MMU — механізмі тіньових таблиць сторінок, який KVM використовує для відстеження пам’яті гостьових машин. За потреби повторно використати наявну тіньову сторінку KVM зіставляв її лише за адресою фрейма пам’яті (GFN), але не перевіряв тип (роль) цієї сторінки. Два різні типи тіньових сторінок можуть мати одну й ту саму адресу, але виконувати зовсім різні функції. Це призводило до того, що KVM міг підставити сторінку неправильного типу, порушуючи внутрішню цілісність своїх структур даних.

У більшості випадків ядро виявляє пошкодження й аварійно завершує роботу — саме це демонструє публічний PoC Januscape: завантажуваний модуль ядра в гостьовій VM спричиняє паніку хоста за секунди або хвилини гонки. Однак існує й більш небезпечний сценарій: якщо звільнена тіньова сторінка встигає бути виділена під інші потреби до очищення, процедура очищення записує значення в уже чужу для неї пам’ять. За даними дослідника, зловмисник контролює, куди відбувається запис, хоч і не контролює записуване значення, — але навіть цього обмеженого примітива може бути достатньо для подальшої ескалації.

Уразливий код був внесений комітом 2032a93d66fa в серпні 2010 року (епоха ядра 2.6.36). Виправлення — коміт 81ccda30b4e8 — було прийняте до основної гілки 19 червня 2026 року. Автор патча — мейнтейнер KVM Паоло Бонціні (Paolo Bonzini). Виправлення являє собою однорядкове доповнення до функції kvm_mmu_get_child_sp(): умова повторного використання тепер перевіряє role.word разом із GFN.

Умови експлуатації та масштаб загрози

Для експлуатації необхідні дві умови з боку гостьової машини:

  • Привілеї root всередині VM — поширена умова для орендованих хмарних інстансів.
  • Вкладена віртуалізація (nested virtualization), увімкнена на хості. Навіть якщо хост за замовчуванням використовує апаратні EPT (Intel) або NPT (AMD), вкладена віртуалізація змушує KVM задіяти застарілий шлях через shadow MMU, де й міститься помилка.

Експлойт не потребує взаємодії з QEMU чи іншим користувацьким VMM — це суто внутрішньоядерна помилка KVM. Практичний ризик зосереджений на x86-середовищах, які обслуговують недовірених орендарів з доступом до вкладеної віртуалізації. Зловмисник, який орендував один такий інстанс, здатен обрушити хост і вивести з ладу всі сусідні віртуальні машини на тому самому фізичному сервері.

За даними дослідника, на дистрибутивах на кшталт RHEL, де /dev/kvm має права доступу 0666 (доступний усім користувачам), та сама помилка потенційно може бути використана для локальної ескалації привілеїв до root, хоча основний вектор загрози — побіг із гостьової машини.

Варто зазначити, що CVE-2026-53359 — уже друга вразливість типу use-after-free в shadow MMU за два місяці. У травні 2026 року була виправлена схожа, але окрема проблема CVE-2026-46113, пов’язана з невідповідністю rmap у тому ж застарілому коді. Це вказує на системну крихкість застарілого шляху shadow MMU.

Контекст: серія розкриттів від одного дослідника

Januscape — третє розкриття вразливості ядра Linux від дослідника Hyunwoo Kim (@v4bel) приблизно за два місяці. У травні 2026 року він опублікував Dirty Frag (CVE-2026-43284 / CVE-2026-43500) — ланцюжок вразливостей запису в кеш сторінок. У червні послідував ITScape (CVE-2026-46316) — перша публічно продемонстрована втеча з гостьової машини на KVM/arm64 через стан гонки у віртуальному контролері переривань. Januscape доповнює картину з боку x86.

За твердженням Кіма, експлойт було подано як знахідку нульового дня до програми Google kvmCTF, запущеної у 2024 році та такої, що пропонує винагороди до $250 000 за повний побіг з гостьової машини. Втім це твердження не підтверджене Google у відкритих джерелах.

Практичні рекомендації

Стабільні версії ядра з виправленням були випущені 4 липня 2026 року:

  • 7.1.3, 6.18.38, 6.12.95, 6.6.144, 6.1.177, 5.15.211, 5.10.260

Пріоритетні дії:

  1. Перевірте наявність патча. Переконайтеся, що ядро містить коміт 81ccda30b4e8. Бекпорти дистрибутивів можуть нести виправлення під іншим номером версії — перевіряйте changelog пакета, а не лише вивід uname -r.
  2. Якщо негайне оновлення неможливе, вимкніть вкладену віртуалізацію для недовірених гостей параметрами модуля: kvm_intel.nested=0 або kvm_amd.nested=0. Це повністю усуває вектор атаки.
  3. Оцініть конфігурацію доступу до /dev/kvm. На системах, де цей файл пристрою доступний усім користувачам, розгляньте обмеження прав доступу.

NVD поки не присвоїла оцінку CVSS для CVE-2026-53359. Хости ARM64 не зачеплені цією вразливістю — ITScape (CVE-2026-46316) є окремою проблемою для KVM/arm64.

Публічний PoC демонструє гарантований крах хоста, а дві вразливості shadow MMU за два місяці свідчать про накопичений технічний борг у застарілому коді KVM. Адміністраторам x86 KVM-хостів із вкладеною віртуалізацією та мультиорендним доступом варто розглядати оновлення ядра до виправленої версії як завдання з високим пріоритетом, не чекаючи на присвоєння CVSS.


CyberSecureFox Editorial Team

Редакція CyberSecureFox висвітлює новини кібербезпеки, уразливості, malware-кампанії, ransomware-активність, AI security, cloud security та security advisories вендорів. Матеріали готуються на основі official advisories, даних CVE/NVD, сповіщень CISA, публікацій вендорів і відкритих звітів дослідників. Статті перевіряються перед публікацією та оновлюються за появи нових даних.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.