Уязвимость BDU:2024-11011 (CVE-2024-49138)
Уязвимость BDU:2024-11011 (CVE-2024-49138)
Категория: Программы Теги: Уязвимости Опубликовано: 10 апреля 2025

Уязвимость BDU:2024-11011 в драйвере Common Log File System (CLFS)

Уязвимость BDU:2024-11011 (CVE-2024-49138) в драйвере Common Log File System (CLFS) связана с переполнением буфера в динамической памяти при обработке специально созданных файлов журналов (BLF). Это позволяет локальному злоумышленнику выполнить произвольную запись в память ядра, повысить привилегии до уровня SYSTEM и полностью скомпрометировать систему.

Уровень опасности: Высокий (CVSS:3.1 7.8 / 6.8) - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
Затронутые системы: Windows 10/11, Windows Server 2008–2025.


Технический анализ эксплойта

1. Подготовка вредоносного BLF-файла

Эксплойт создает файл журнала (mylogdddd.blf) с помощью API CreateLogFile и добавляет контейнер через AddLogContainer. Уязвимость активируется при парсинге структуры Control Block внутри BLF-файла, где:

  • Специально сформированные записи вызывают переполнение буфера в куче (heap) ядра.

  • Подмена виртуальной таблицы (vtable) объекта CLFS_CONTAINER перенаправляет выполнение кода на функцию DBGKPTRIAGEDUMPRESTORESTATE в ядре.

2. Arbitrary Write в ядро

Функция DBGKPTRIAGEDUMPRESTORESTATE содержит примитив записи по произвольному адресу:

*(PDWORD64)(arg_DBGKPTRIAGEDUMPRESTORESTATE + 0x10) = value_to_write;  

Эксплойт использует это для:

  • Изменения PreviousMode потока (с 1 на 0), обходя проверки режима пользователя.

  • Подмены токена процесса через NtWriteVirtualMemory, заменяя текущий токен на токен SYSTEM.

3. Ключевые этапы кода

  • Создание уязвимой структуры BLF:

    logHndl = CreateLogFile(L"LOG:C:\\temp\\testlog\\mylogdddd.blf", ...);  
    AddLogContainer(logHndl, ..., L"C:\\temp\\testlog\\container1");  
  • Использование DBGKPTRIAGEDUMPRESTORESTATE:

    *(PDWORD64)((PCHAR)pcclfscontainer + 0x200 + 0x68) = g_ntbase + DBGKPTRIAGEDUMPRESTORESTATE_OFFSET;  
  • Замена токена:

    NtWriteVirtualMemory((HANDLE)-1, eprocess + TOKEN_OFFSET, &systemtoken, ...);  

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

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

  • Отсутствие патчей для CVE-2024-49138.

  • Возможность создания файлов в системных директориях (например, C:\temp).


Рекомендации по защите

  1. Установите обновления:

    • Примените патчи Microsoft от 10 декабря 2024 г..

    • Проверьте версию ОС

      в powershell команда:

      winver  
  2. Ограничьте права пользователей:

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

    • Включите User Account Control (UAC) с настройкой «Always notify».

  3. Настройте антиэксплойты:

    • Активируйте HVCI (Hypervisor-Protected Code Integrity) и CFG (Control Flow Guard).

    • Используйте Microsoft Defender Exploit Guard.

  4. Мониторинг:

    • Отслеживайте создание подозрительных BLF-файлов через Windows Event Log (Event ID 4657).

    • Используйте правила SACL для директорий вроде C:\temp\.

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