Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/fortra/cve-2024-6768
Análise de VulnerabilidadesExploraçãoExploração de Binários
GitHubfortra/cve-2024-6768

CVE-2024-6768

Exploit de prova de conceito para CVE-2024-6768, uma vulnerabilidade no driver Windows CLFS.sys que causa BSoD através de um arquivo .BLF manipulado. Inclui código-fonte e análise técnica.

Ver Repositório
1652há 2 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-6768: Validação inadequada de quantidade especificada na entrada produz um estado irrecuperável em CLFS.sys causando um BSoD.

Introdução:

CVE-2024-6768 é uma vulnerabilidade no driver Common Log File System (CLFS.sys) do Windows, causada pela validação inadequada de quantidades especificadas nos dados de entrada. Essa falha leva a uma inconsistência irrecuperável, acionando a função KeBugCheckEx e resultando em uma Tela Azul da Morte (BSoD). O problema afeta todas as versões do Windows 10 e Windows 11, Windows Server 2016, Server 2019 e Server 2022, mesmo com todas as atualizações aplicadas. Uma Prova de Conceito (PoC) mostra que, ao criar valores específicos em um arquivo .BLF, um usuário sem privilégios pode induzir uma falha no sistema. Os problemas potenciais incluem instabilidade do sistema e negação de serviço, já que usuários maliciosos podem explorar essa vulnerabilidade para travar repetidamente sistemas afetados, interrompendo operações e potencialmente causando perda de dados.

Nos últimos dois trabalhos de pesquisa sobre o Common Log File System (CLFS), consegui obter RCE em ambos os casos. (Se tiver interesse, aqui está o que fiz para CLFS CVE-2023-28252 e CLFS CVE-2022-37969). No entanto, quando modifiquei alguns valores na PoC em que estava trabalhando, observei que isso acionava um BSoD no sistema alvo. Consequentemente, decidi relatar esse problema. Este documento ajuda a entender o BSoD e fornece orientação sobre como reproduzi-lo.

Detalhes da vulnerabilidade:

Esta vulnerabilidade é produzida por uma Validação Inadequada de Quantidade Especificada na Entrada (CWE-1284) que causa uma inconsistência irrecuperável no driver CLFS.sys, forçando uma chamada à função KeBugCheckEx, o que permite a um usuário sem privilégios produzir um BSoD no Windows. Neste documento, estou usando a versão 10.0.19041.3324 do CLFS.sys como exemplo, mas este problema afeta todas as versões até a versão mais recente do Windows 10 e Windows 11 com todas as atualizações aplicadas.

Pontuação Base: CVSS 4.0: 6.8 Médio

Vector String 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

Vetor de Ataque (AV): Local

Complexidade do Ataque (AC): Baixa

Requisitos de Ataque (AT): Nenhum

Privilégios Necessários (PR): Baixos

Interação do Usuário (UI): Nenhuma

Confidencialidade (VC): Nenhuma

Integridade (VI): Nenhuma

Disponibilidade (VA): Alta

Confidencialidade (SC): Nenhuma

Integridade (SI): Nenhuma

Disponibilidade (SA): Nenhuma

Após o sistema detectar o estado irrecuperável, ele chama a função KeBugCheckEx que leva a um BSoD conforme descrito pela Microsoft neste artigo: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-kebugcheckex.

Uma captura de tela de um erro de computador com descrição gerada automaticamente

CClfsLogFcbPhysical::FlushLog+6F2 é o endereço na versão 10.0.19041.3324 do CLFS.sys onde a chamada a KeBugCheckEx é produzida:

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

Construindo a PoC:

Para iniciar a análise, é necessário conhecer o formato do arquivo .BLF, que é manipulado pelo driver vulnerável do Common Log File System chamado CLFS.sys localizado na pasta %windir%\system32. Para saber mais sobre isso, consulte a seção de referências no final deste artigo.

No nosso repositório de prova de conceito, o arquivo 54.blf tem um valor manipulado (0xffffffff00ff01) no offset 0x1c10.

Uma captura de tela de um computador com descrição gerada automaticamente

Este valor manipulado está no offset 0x38 da estrutura _CLFS_CLIENT_CONTEXT, é copiado em CClfsLogFcbPhysical::Initialize para o offset 0x538 da estrutura CClfsLogFcbPhysical.

A zona marcada em azul abaixo começa com cidNode = 0xC1FDF006 e é a estrutura CLFSHASHSYM

Uma captura de tela de um computador com descrição gerada automaticamente

Depois disso, começando com cidNode == 0xC1FDF007, está localizada a estrutura _CLFS_CLIENT_CONTEXT

No offset 0x38 está o campo lsnOwnerPage que será preenchido com o valor manipulado 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; }; };

Quando a PoC é executada, ela manipula o valor de lsnOwnerPage, chama CreateLogFile e o valor mencionado é usado em UpdateCachedOwnerPage como visto na pilha de chamadas abaixo:

Uma captura de tela de um computador com descrição gerada automaticamente

Este é o endereço onde a PoC chama CreateLogFile e o valor manipulado começa a ser usado:

Uma captura de tela de um computador com descrição gerada automaticamente

Uma captura de tela de um computador com descrição gerada automaticamente

Uma captura de tela de um computador com descrição gerada automaticamente

Dentro de AddLsnOffset retorna um ulloffset calculado a partir deste valor manipulado:

Uma captura de tela de um computador com descrição gerada automaticamente

O ulloffset retornado é 0xFFFFFFFF00000000

Depois disso, este valor é comparado e sai da função CClfsLogFcbPhysical::UpdateCachedOwnerPage

Baixar ferramenta