Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-6768 | Kitploit
Инструменты/GitHubGitHub/fortra/cve-2024-6768
Анализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubfortra/cve-2024-6768

CVE-2024-6768

Репозиторий
1652 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2024-6768: Некорректная проверка указанного количества во входных данных приводит к невосстановимому состоянию в CLFS.sys, вызывающему BSoD.

Введение:

CVE-2024-6768 — это уязвимость в драйвере Common Log File System (CLFS.sys) Windows, вызванная некорректной проверкой указанных количеств во входных данных. Этот дефект приводит к невосстановимому противоречию, которое запускает функцию KeBugCheckEx и приводит к синему экрану смерти (BSoD). Проблема затрагивает все версии Windows 10 и Windows 11, Windows Server 2016, Server 2019 и Server 2022, несмотря на все установленные обновления. Концепт-эксплойт (PoC) показывает, что, подобрав определённые значения в файле .BLF, непривилегированный пользователь может вызвать крах системы. К потенциальным проблемам относятся нестабильность системы и отказ в обслуживании, поскольку злоумышленники могут использовать эту уязвимость, чтобы многократно вызывать крах затронутых систем, нарушая их работу и потенциально приводя к потере данных.

В двух моих последних исследованиях Common Log File System (CLFS) мне удалось достичь RCE в обоих случаях. (Если вам интересно, вот мои работы по CLFS CVE-2023-28252 и CLFS CVE-2022-37969). Однако, когда я изменил некоторые значения в PoC, над которым работал, я заметил, что это вызвало BSoD на целевой системе. В связи с этим я решил сообщить об этой проблеме. Этот документ помогает понять причины BSoD и содержит рекомендации по его воспроизведению.

Детали уязвимости:

Эта уязвимость вызвана некорректной проверкой указанного количества во входных данных (CWE-1284)

которая вызывает невосстановимое противоречие в драйвере CLFS.sys, приводящее к принудительному вызову функции KeBugCheckEx, что позволяет непривилегированному пользователю вызвать BSoD в Windows. В этом документе в качестве примера я использую CLFS.sys версии 10.0.19041.3324, но эта проблема затрагивает все версии вплоть до последней версии Windows 10 и Windows 11 со всеми установленными обновлениями.

Базовый балл: CVSS 4.0: 6.8 средний

Векторная строка CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

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

Сложность атаки (AC): низкая

Требования к атаке (AT): отсутствуют

Требуемые привилегии (PR): низкие

Взаимодействие с пользователем (UI): отсутствует

Конфиденциальность (VC): отсутствует

Целостность (VI): отсутствует

Доступность (VA): высокая

Конфиденциальность (SC): отсутствует

Целостность (SI): отсутствует

Доступность (SA): отсутствует

Когда система обнаруживает невосстановимое состояние, она вызывает функцию KeBugCheckEx, что приводит к BSoD, как описано Microsoft в этой статье: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-kebugcheckex.

Снимок экрана с ошибкой компьютера, описание создано автоматически

CClfsLogFcbPhysical::FlushLog+6F2 — это адрес в CLFS.sys версии 10.0.19041.3324, по которому происходит вызов KeBugCheckEx:

CClfsLogFcbPhysical::FlushLog+6D5

CClfsLogFcbPhysical::FlushLog+6D5 loc_FFFFF8062EED4F35: ; BugCheckParameter2

CClfsLogFcbPhysical::FlushLog+6D5 mov r8d, eax

CClfsLogFcbPhysical::FlushLog+6D8 and [rsp+0A8h+Timeout], 0

CClfsLogFcbPhysical::FlushLog+6DE mov r9, rbx ; BugCheckParameter3

CClfsLogFcbPhysical::FlushLog+6E1 mov edx, 3Ah ; ':' ; BugCheckParameter1

CClfsLogFcbPhysical::FlushLog+6E6 mov ecx, 0C1F5h ; BugCheckCode

CClfsLogFcbPhysical::FlushLog+6EB mov r10, cs:__imp_KeBugCheckEx

CClfsLogFcbPhysical::FlushLog+6F2 call near ptr nt_KeBugCheckEx

Создание PoC:

Чтобы приступить к анализу, необходимо знать формат файла .BLF, который обрабатывается уязвимым драйвером Common Log File System — CLFS.sys, расположенным в папке %windir%\system32. Чтобы узнать больше об этом, обратитесь к разделу «Ссылки» в конце этой статьи.

В нашем репозитории с концепт-эксплойтом файл 54.blf содержит специально сформированное значение (0xffffffff00ff01) по смещению 0x1c10.

Снимок экрана компьютера, описание создано автоматически

Это специально сформированное значение находится по смещению 0x38 структуры _CLFS_CLIENT_CONTEXT; оно копируется в CClfsLogFcbPhysical::Initialize в смещение 0x538 структуры CClfsLogFcbPhysical.

Область, выделенная синим цветом ниже, начинающаяся с cidNode = 0xC1FDF006, представляет собой структуру CLFSHASHSYM

Снимок экрана компьютера, описание создано автоматически

Затем, начиная с cidNode == 0xC1FDF007, расположена структура _CLFS_CLIENT_CONTEXT

По смещению 0x38 находится поле lsnOwnerPage, которое будет заполнено специально сформированным значением 0xffffffff00ff01:

struct _CLFS_CLIENT_CONTEXT

{

CLFS_NODE_ID cidNode;

CLFS_CLIENT_ID cidClient;

USHORT fAttributes;

ULONG cbFlushThreshold;

ULONG cShadowSectors;

ULONGLONG cbUndoCommitment;

LARGE_INTEGER llCreateTime;

LARGE_INTEGER llAccessTime;

LARGE_INTEGER llWriteTime;

*CLFS_LSN **lsnOwnerPage; ***// offset 0x38

CLFS_LSN lsnArchiveTail;

CLFS_LSN lsnBase;

CLFS_LSN lsnLast;

CLFS_LSN lsnRestart;

CLFS_LSN lsnPhysicalBase;

CLFS_LSN lsnUnused1;

CLFS_LSN lsnUnused2;

CLFS_LOG_STATE eState;

union

{

HANDLE hSecurityContext;

ULONGLONG ullAlignment;

};

};

При выполнении PoC формируется значение lsnOwnerPage, вызывается CreateLogFile, и упомянутое значение используется в UpdateCachedOwnerPage, как показано в стеке вызовов ниже:

Снимок экрана компьютера, описание создано автоматически

Это адрес, по которому PoC вызывает CreateLogFile, и с этого момента специально сформированное значение начинает использоваться:

Снимок экрана компьютера, описание создано автоматически

Снимок экрана компьютера, описание создано автоматически

Снимок экрана компьютера, описание создано автоматически

Внутри AddLsnOffset возвращается ulloffset, вычисленный на основе этого специально сформированного значения:

Снимок экрана компьютера, описание создано автоматически

Возвращаемое значение ulloffset равно 0xFFFFFFFF00000000

После этого значение сравнивается, и происходит выход из функции CClfsLogFcbPhysical::UpdateCachedOwnerPage

Снимок экрана компьютера, описание создано автоматически

После этого управление возвращается к PoC в пользовательском режиме, а при выходе вызывается CClfsLogFcbPhysical::FlushLog, когда используется исходное специально сформированное ullofset

Снимок экрана компьютера, описание создано автоматически

Это значение сравнивается в цикле, и если ни на одной итерации оно не совпадает, то, поскольку система находится в невосстановимом состоянии, вызывается KeBugCheck, что приводит к BSoD и перезапуску системы:

Снимок экрана компьютерной программы, описание создано автоматически

Снимок экрана компьютера, описание создано автоматически

Функциональный PoC с исходными кодами и специально сформированным BLF-файлом можно найти в репозитории Fortra на GitHub.

  • https://github.com/fortra/CVE-2024-6768

  • https://github.com/fortra/CVE-2024-6768/blob/main/clfs_eopNEW/x64/Release/clfs_eop.exe

Надеюсь, это окажется полезным. По любым вопросам обращайтесь по адресу [email protected].

Ссылки:

Ссылки по Common Log File System (CLFS):

  • https://www.zscaler.com/blogs/security-research/technical-analysis-windows-clfs-zero-day-vulnerability-cve-2022-37969-part

  • https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-the-common-log-file-system

  • https://github.com/ionescu007/clfs-docs/blob/main/README.md

  • https://www.coresecurity.com/core-labs/articles/understanding-cve-2022-37969-windows-clfs-lpe

  • https://www.youtube.com/watch?v=N5bcibiDVaw

  • https://github.com/fortra/CVE-2024-6768

  • https://www.fortra.com/security/advisories/research/fr-2024-001

  • https://www.cve.org/CVERecord?id=CVE-2024-6768

Скачать инструмент