Уязвимость функции VSP Elevation ядра системы аппаратной виртуализации Windows Hyper-V Windows
Уязвимость функции VSP Elevation ядра системы аппаратной виртуализации Windows Hyper-V Windows
Категория: Программы Теги: Уязвимости Опубликовано: 29 июня 2025

Уязвимость BDU:2025-00287 (CVE-2025-21333) Windows Hyper-V

Уязвимость BDU:2025-00287 (CVE-2025-21333) переполнения буфера в подсистеме аппаратной виртуализации Windows Hyper-V, позволяющая локальному злоумышленнику повысить привилегии до уровня SYSTEM. Уязвимость существует в драйвере vkrnlintvsp.sys и связана с некорректной обработкой параметров при создании межвиртуальных событий через функцию NtCreateCrossVmEvent. При передаче специально сформированного DACL (списка управления доступом) размером более 0xFFF0 байт происходит переполнение буфера в пуле ядра, что позволяет повредить смежные объекты и получить полный контроль над системой. Эксплуатация требует включенной функции Windows Sandbox и локального доступа с правами стандартного пользователя.

Анализ уязвимости

Уровень опасности: 7.8 HIGH
Вектор атаки: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

  • AV:L (Вектор атаки): Локальный

  • AC:L (Сложность эксплуатации): Низкая

  • PR:L (Уровень привилегий): Пользователь

  • UI:N (Взаимодействие с пользователем): Не требуется

  • S:U (Область воздействия): Неизменная

  • C:H (Конфиденциальность): Полная компрометация

  • I:H (Целостность): Полная компрометация

  • A:H (Доступность): Полная компрометация

Условия эксплуатации

  1. Локальный доступ к системе с правами пользователя

  2. Включенная функция Windows Sandbox (по умолчанию отключена)

  3. Уязвимые версии ОС:

    • Windows 10 21H2-24H2 x64

    • Windows 11 22H2-24H2 (x64/ARM64)

    • Windows Server 2022/2025

Технический анализ уязвимости

Уязвимость CVE-2025-21333 возникает в драйвере vkrnlintvsp.sys, отвечающем за взаимодействие между виртуальными машинами Hyper-V. При обработке вызова NtCreateCrossVmEvent происходит переполнение буфера в куче ядра:

typedef NTSTATUS(NTAPI* NtCreateCrossVmEvent)(
    PHANDLE EventHandle,
    ACCESS_MASK DesiredAccess,
    POBJECT_ATTRIBUTES ObjectAttributes,  // Контролируемый атакующим
    ULONG Unknown1,
    PVOID Unknown2,
    GUID* Guid
);

Ключевая проблема — отсутствие проверки размера DACL в SECURITY_DESCRIPTOR. При передаче искусственно раздутого DACL (>0xFFF0 байт) происходит переполнение пула ядра.

Анализ эксплойта

Рассмотрим код эксплоита для понимания работы вектора атаки с использованием этой уязвимости.

Эксплойт использует технику "heap feng shui" для превращения переполнения в R/W примитивы ядра:

Этапы работы:

  1. Подготовка объектов:

    • Создание 5000+ WNF-состояний (NtCreateWnfStateName)

    • Инициализация I/O Ring объектов с регистрацией буферов

    for (int i = 0; i < IORINGS_SIZE; i++) {
      CreateIoRing(IORING_VERSION_3, flags, ...);
      BuildIoRingRegisterBuffers(..., REGBUFFERCOUNT, preregBuffers);
    }
  2. Триггеринг уязвимости:

    • Формирование "раздутого" DACL с размером 0xFFF0

    • Вызов уязвимой функции:

    fNtCreateCrossVmEvent(&hEvent, EVENT_ALL_ACCESS, &oa, 0, &guid2, &guid2);
  3. Превращение в R/W примитив:

    • Повреждение структур WNF для подмены указателей

    • Замена IOP_MC_BUFFER_ENTRY на контролируемую пользовательскую структуру

    fake_bufferentry->Address = TargetAddress;  // Произвольный адрес ядра
    fake_bufferentry->Length = size;
  4. Кража токена SYSTEM:

    • Поиск EPROCESS через утечку адресов

    • Подмена токена текущего процесса

    KRead((PVOID)(system_eproc + EPROCESS_TOKEN_OFFSET), ...);
    KWrite((PVOID)cur_token_ptr, &system_token, ...);

Риски и последствия

  1. Полный контроль системы: Права SYSTEM позволяют:

    • Устанавливать руткиты/бэкдоры

    • Отключать защиту (Defender, EDR)

    • Читать память других процессов (пароли, токены)

  2. Обход изоляции: В контейнерах Hyper-V/Sandbox:

    # Вредонос в Windows Sandbox
    .\CVE-2025-21333-POC.exe
    [+] Got SYSTEM privileges!
  3. Постоянный доступ: Модификация системных файлов:

    • Подмена lsass.exe

    • Внедрение в драйверы

    • Создание скрытых учетных записей

Методы защиты

  1. Обновление системы.

  2. Отключение Sandbox (если не используется):

    Disable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM"
  3. Контроль целостности:

    • Enable HVCI (Hypervisor-Protected Code Integrity)

    • Microsoft Defender Application Control

Правила обнаружения (Suricata/YARA)

Network Detection (HTTP):

alert http any any -> $HOME_NET any (
  msg:"CVE-2025-21333 Exploit Attempt";
  flow:to_server;
  content:"WindowsSandboxClient.exe";
  content:"BDU:2025-00287"; distance:0;
  metadata:policy security-ips;
  sid:202521333;
)

Memory Detection (YARA):

rule hyperv_exploit_cve_2025_21333 {
  meta:
    description = "Detects CVE-2025-21333 exploit patterns"
  strings:
    $s1 = "vkrnlintvsp.sys" fullword ascii
    $s2 = { 48 C7 C0 ?? ?? ?? ?? 48 8B 80 ?? ?? ?? ?? 48 89 ?? ?? ?? 48 8B }
  condition:
    any of them
}

Заключение

Уязвимость BDU:2025-00287 (CVE-2025-21333) критична для сред виртуализации Windows. Основные риски связаны с локальным повышением привилегий при включенном Hyper-V/Sandbox. Для защиты требуется комплекс мер: установка патчей, ограничение прав пользователей и мониторинг аномальной активности в подсистеме виртуализации.

Алексей Черемных Алексей Черемных
37