Cabeçalho penumbroso

CVE-2025-55680 PoC: Transformando uma condição de corrida do Windows Cloud Files em escalada de privilégio no mundo real

Quando a Microsoft lança outra correção local de elevação de privilégio, é fácil tratá-la como "apenas mais uma CVE na Patch Tuesday". O CVE-2025-55680 merece mais atenção do que isso. Ele é um Condição de corrida de tempo de verificação e tempo de uso (TOCTOU) no Mini driver de filtro para arquivos de nuvem do Windows (cldflt.sys) que permite que um usuário local com poucos privilégios crie arquivos arbitrários em locais confidenciais e os envie para o SYSTEM.(NVD)

Para os defensores, esse é mais um ponto de dados em um longo histórico de bugs relacionados ao Cloud Files; para as equipes vermelhas e os desenvolvedores de exploits, é um estudo de caso moderno sobre como as abstrações de sincronização na nuvem abrem uma superfície de ataque adjacente ao kernel. Como o pentesting assistido por IA está sendo cada vez mais usado para raciocinar sobre esses bugs, o CVE-2025-55680 também é um teste natural para geração automatizada de PoC.

Este artigo apresenta a mecânica da vulnerabilidade, o modelo de exploração e as estratégias realistas de mitigação e, em seguida, analisa como as ferramentas orientadas por IA, como Penligente pode levar as equipes de "temos um CVE" para "temos provas de que isso é (ou não é) explorável em nosso ambiente".

CVE-2025-55680 PoC

Entendendo o CVE-2025-55680 no contexto

De acordo com NVD e o oficial CVE.org registro, o CVE-2025-55680 é um TOCTOU condição de corrida no Mini Filter Driver do Windows Cloud Files que permite que um invasor local autenticado eleve seus privilégios. Ele tem uma pontuação base CVSS v3.1 na faixa alta (em torno de 7,0-7,8, dependendo da autoridade de pontuação), com o vetor típico:

AV:L / AC:(L ou H) / PR:L / UI:N / S:U / C:H / I:H / A:H (NVD)

Fornecedor de segurança na nuvem Feiticeiro destaca alguns metafatos importantes:(wiz.io)

  • Ele afeta várias versões compatíveis do Windows, tanto no cliente quanto no servidor.
  • Ele é classificado como CWE-367 (condição de corrida TOCTOU).
  • Ele já está associado ao código de exploração pública e é considerado de "alto valor" porque fornece o SYSTEM em uma pilha de recursos muito comum (OneDrive / Files On-Demand).

Vários alertas (Wiz, Tenable, H-ISAC) observam que o CVE-2025-55680 é mais uma entrada em uma linha de vulnerabilidades do Mini Filtro do Cloud Files que foram enviadas desde 2022.wiz.io) Para as equipes que mantêm grandes frotas de Windows ou farms de VDI, essa família de problemas deve agora ser tratada como uma categoria de risco permanente, e não como um bug isolado.

O que o Mini Filtro do Cloud Files realmente faz

Para entender o bug, você precisa entender o que o driver faz em primeiro lugar. O Mini filtro de arquivos de nuvem (cldflt.sys) faz parte da pilha de sincronização em nuvem do Windows. Ele é a base de recursos como Arquivos do OneDrive sob demandaonde os arquivos podem existir localmente como "marcadores de posição" e se hidratar a partir da nuvem quando acessados.Inteligência da Exodus)

Em um nível alto:

  • Um provedor de sincronização registra um raiz de sincronização via CfRegisterSyncRoot em cldapi.dll.
  • Sob essa raiz, os arquivos podem ser: totalmente hidratados, fixados ou espaços reservados que só se hidratam quando são usados.
  • APIs de modo de usuário, como CfCreatePlaceholders impulsionam a criação dessas entradas de espaço reservado.
  • No núcleo, cldflt.sys intercepta a E/S e gerencia essas operações, incluindo a criação de arquivos e diretórios via FltCreateFileEx2.

A vulnerabilidade fica bem no caminho onde Nomes de arquivos fornecidos pelo usuário para espaços reservados são validados e transformados em criações reais de arquivos no modo kernel.

Causa raiz: Uma corrida TOCTOU clássica em uma pilha de sincronização moderna

A Exodus Intelligence publicou uma análise técnica detalhada do CVE-2025-55680, explicando como o bug surge dentro do HsmpOpCreatePlaceholders() função em cldflt.sys.(Inteligência da Exodus)

Em termos simplificados:

  1. O código do modo de usuário invoca CfCreatePlaceholders() para criar um ou mais arquivos de espaço reservado em uma raiz de sincronização.
  2. No driver do filtro, HsmpOpCreatePlaceholders() recebe um controle de E/S (IOCTL 0x903BC) com um buffer que inclui um campo de nome de arquivo relativo (relName).
  3. O motorista:
    • Sondas e mapeia o buffer do usuário no espaço do kernel (usando um MDL e MmMapLockedPagesSpecifyCache).
    • Itera através de relName para garantir que isso aconteça não contêm caracteres proibidos, como \\ ou : (uma atenuação introduzida após um CVE anterior).
  4. Se a validação for aprovada, o driver preparará ATRIBUTOS_DO_OBJETO e chama FltCreateFileEx2() para criar o arquivo, usando o nome de arquivo validado e um identificador de diretório raiz derivado da raiz de sincronização.

O erro está nas etapas 3-4: há um janela de tempo entre validar o buffer do usuário e usá-lo em FltCreateFileEx2(), durante o qual o invasor pode modificar a mesma memória mapeada do modo de usuário. Como as visualizações do kernel e do usuário compartilham a página física, qualquer alteração no buffer do usuário também é refletida no ponteiro do kernel.Inteligência da Exodus)

Expressa em pseudocódigo, a lógica é mais ou menos assim:

// Pseudocódigo, simplificado para ilustração
NTSTATUS HsmpOpCreatePlaceholders(USER_BUFFER* userBuf) {
    // Mapear o buffer do usuário no espaço do kernel
    KERNEL_VIEW* kview = MapUserBuffer(userBuf);

    WCHAR* relName = kview->relName;

    // Validar nome de arquivo: rejeitar caracteres '\\' e ':'
    Se (contains_forbidden_chars(relName)) {
        return STATUS_INVALID_PARAMETER;
    }

    // Construa OBJECT_ATTRIBUTES com RootDirectory = sync root
    OBJECT_ATTRIBUTES oa = {0};
    oa.RootDirectory = SyncRootHandle;
    oa.ObjectName = relName; // ainda apontando para a memória mapeada do usuário

    // 3. criar o arquivo
    return FltCreateFileEx2(..., &oa, IO_IGNORE_SHARE_ACCESS_CHECK, ...);
}

O TOCTOU é claro: contains_forbidden_chars(relName) lê a string uma vez e decide que é seguro, mas não há garantia de que relName permanece a mesma string no momento em que FltCreateFileEx2() corridas.

Ao correr cuidadosamente essa janela, um invasor pode:

  • Passe a validação com algo que se pareça com um nome relativo benigno na raiz da sincronização, por exemplo JUSTASTRINGDnewfile.dlle depois
  • Inverta um caractere no buffer mapeado para que, no momento em que o arquivo for criado, ele se torne JUSTASTRING\\newfile.dll, onde JUSTASTRING é uma junção ou link simbólico que aponta para um diretório privilegiado, como C:\\Windows\\System32.(Inteligência da Exodus)

Como o caminho de criação de arquivo não impõe proteções adicionais em relação a links simbólicos ou passagem de junção, o driver acaba criando um arquivo controlado pelo invasor em um local que não deveria ser gravável por um usuário com pouco privilégio.

CVE-2025-55680 PoC: Transformando uma condição de corrida do Windows Cloud Files em escalada de privilégio no mundo real

Modelo de exploração: Do shell de baixa privacidade ao sistema

A Exodus e várias agências de notícias descrevem um modelo de exploração que é tecnicamente não trivial, mas muito realista para um atacante determinado ou uma equipe vermelha:(Inteligência da Exodus)

  1. Configuração do ambiente
    • Registre um diretório raiz de sincronização usando CfRegisterSyncRoot.
    • Crie um diretório sob essa raiz (por exemplo JUSTASTRING) e torná-lo uma junção para um diretório de destino de alto valor (por exemplo C:\\Windows\\System32).
  2. Orquestração de corridas
    • Use vários segmentos para:
      • Emitir continuamente solicitações de criação de placeholder (CfCreatePlaceholders → IOCTL 0x903BC) com um nome relativo "seguro".
      • Inverta continuamente um byte no buffer de nome de arquivo mapeado para introduzir ou remover um \\ no momento certo.
      • Monitorar se o arquivo de destino (por exemplo System32\\newfile.dll) apareceu.
  3. Escalonamento de privilégios por meio de sequestro de DLL
    • Depois que uma DLL ou um executável arbitrário for colocado em um diretório com privilégios, use um vetor conhecido de sideload de DLL ou de sequestro de serviço para obter um código em execução com privilégios SYSTEM.
  4. Limpeza
    • Remova rastros, como a junção e os arquivos temporários, para reduzir os artefatos forenses.

Do ponto de vista de um defensor, isso se traduz em uma cadeia de comportamentos observáveis em vez de um único "evento de exploração". A tabela a seguir resume os estágios:

EstágioGol do atacanteSinais observáveis (exemplos)
Sincronização do registro raizPreparar o contexto controlado dos arquivos de nuvemCfRegisterSyncRoot uso, novos caminhos de raiz de sincronização
Criação de junçõesPonte do caminho benigno para o alvo privilegiadoJunções de diretórios de usuário para C:\\Windows\\System32
Execução da corridaWin TOCTOU para criar um arquivo no diretório do sistemaIOCTL de alta taxa 0x903BC, atividade anormal em cldflt
Queda e sequestro de arquivosObter execução de código em nível de SISTEMANovas DLLs no System32, anomalias no caminho do serviço/imagem

Nenhum desses itens é exótico para as equipes modernas de EDRs ou DFIR, mas eles exigem correlacionando operações aparentemente inócuas (configuração de sincronização de nuvem, junções, mudança de espaço reservado) com a criação de uma única DLL "estranha".

Visão defensiva: Detecção, proteção e estratégia de patches

A primeira etapa óbvia ainda é a mais eficaz: Aplicar as atualizações do Patch Tuesday de outubro de 2025 da Microsoft que corrigem o CVE-2025-55680.(Notícias sobre segurança cibernética)

No entanto, a aplicação de patches por si só não responde às questões operacionais com as quais os engenheiros de segurança geralmente se preocupam:

  • Onde, em minha propriedade, esse bug poderia ter sido explorado antes da aplicação do patch?
  • Quais sistemas ainda estão atrasados em relação às atualizações?
  • Que telemetria seria realmente acionada se alguém tentasse fazer isso?

Telemetria de host e EDR

Do ponto de vista do endpoint, vale a pena ajustar a detecção e procurar:

  • Comportamento anormal dos arquivos de nuvem
    • Registros raiz de sincronização raros ou únicos em servidores ou estações de trabalho de alto valor.
    • Volume IOCTL 0x903BC inesperado em sistemas que não são grandes usuários do OneDrive.Notícias sobre segurança cibernética)
  • Abuso de junções e links simbólicos
    • Junções criadas a partir de caminhos gravados pelo usuário em diretórios privilegiados (System32, Arquivos de Programas, etc.).
  • Criação suspeita de arquivos em diretórios privilegiados
    • Novas DLLs ou executáveis no System32 ou em outros diretórios do sistema operacional com nomes fora do padrão ou compilados recentemente.
    • As correlações entre essas criações e a atividade de alta frequência em cldflt.sys.

Mapeando isso para MITRE ATT&CKO CVE-2025-55680 é um veículo para obter técnicas como T1068 (Exploração para escalonamento de privilégios) e, em seguida, passar para o serviço ou sequestro de DLL para persistência.

Mitigações arquitetônicas e de políticas

Além da aplicação de patches e da detecção, considere:

ControleDescriçãoNotas
Atualizar a aplicação da cadênciaGaranta que as atualizações da Patch Tuesday sejam lançadas em dias, não em semanas.Especialmente para hosts VDI/multitenant.
Fortalecimento do OneDrive / Arquivos na nuvemRestringir o uso do Files On-Demand em servidores de alto valor.Nem sempre é viável, mas é poderoso.
Modelo de estação de trabalho com privilégios mínimosLimite quem pode instalar provedores de sincronização ou registrar raízes de sincronização.Reduz a superfície de ataque local.
Regras de EDR para abuso de junçãoAlerta sobre junções que apontam para diretórios do sistema operacional.Também é útil além deste CVE.

O H-ISAC e outros grupos do setor já publicaram boletins de ameaças apontando que Explorações PoC estão disponíveis e incentivando a aplicação rápida de patches e o monitoramento direcionado.Associação Americana de Hospitais)

Por que o CVE-2025-55680 é importante para o pentesting com tecnologia de IA

O CVE-2025-55680 também ilustra um ponto problemático mais geral: quando uma equipe de segurança fica sabendo de um novo aumento de privilégio do Cloud Files, Os PoCs públicos geralmente não estão disponíveis, estão incompletos ou foram deliberadamente redigidos. No entanto, a pergunta difícil não é "o CVE existe", mas sim:

"Um invasor pode usar de forma significativa o CVE-2025-55680 em nosso ambiente, em nossos endpoints, com nosso EDR e proteção em vigor?"

Para responder a isso, é necessário:

  • Entendendo o condições prévias exatas (Arquivos na nuvem ativados, uso do OneDrive, recursos de criação de junções).
  • Traduzir a linguagem consultiva em um tentativa de exploração concreta em um laboratório controlado.
  • Capturando evidências (logs, arquivos criados, árvores de processos) para comprovar o impacto ou demonstrar que os controles existentes o bloqueiam.

É aqui que Ferramentas de pentest assistidas por IA começa a parecer menos um exagero e mais uma forma pragmática de fechar o ciclo entre os feeds de vulnerabilidade e os riscos do mundo real.

Triagem de PoC em um clique com Penligent CVE-2025-55680

Triagem de PoC em um clique com a Penligent

Plataformas como Penligente são projetados para automatizar exatamente esse tipo de raciocínio. Para um CVE, como o CVE-2025-55680, um fluxo de trabalho típico orientado por IA é semelhante:

  1. Ingerir inteligência estruturada
    • Puxe o NVD / CVE.org entrada, assessoria do MSRC e análises técnicas (Exodus, Wiz, CyberPress).NVD)
    • Restrições de extração: autenticação local necessária, arquivos de nuvem ativados, manipulação de caminho baseado em junção, corrida ao redor HsmpOpCreatePlaceholders e FltCreateFileEx2.
  2. Mapear para o ambiente de destino real
    • Identificar hosts Windows que executam cldflt.sys com o Cloud Files / OneDrive ativado.
    • Verifique se existem raízes de sincronização e políticas relevantes nesses computadores.
  3. Sintetizar um cenário de PoC controlado
    • Gere um esqueleto de lógica de exploração que registre uma raiz de sincronização de teste, configure uma junção benigna e tente uma corrida de criação de arquivo baseada em espaço reservado somente em um ambiente de laboratório isolado.
    • Instrumentá-lo fortemente com registro para que os defensores obtenham o máximo de observabilidade em vez de uma exploração de caixa preta.

Aqui está o que esse esqueleto não armado pode parecer conceitualmente:

# Pseudocódigo: chicote de corrida (somente para validação de laboratório, não para uma exploração completa)
def run_lab_race(target_path):
    shared = create_mapped_buffer(initial_name="SAFEPLACEHOLDER")
    stop_flag = False

    def creator_thread():
        while not stop_flag:
            issue_placeholder_ioctl(shared)

    def flipper_thread():
        while not stop_flag:
            flip_buffer_byte(shared)
            tiny_sleep()

    def monitor_thread():
        while not stop_flag:
            if privileged_file_exists(target_path):
                log("[+] Potential race won, file created at", target_path)
                stop_flag = True

    start_threads([creator_thread, flipper_thread, monitor_thread])

O objetivo não é enviar outro exploit do tipo copiar e colar, mas permitir que o sistema raciocínio de avisos em linguagem natural para estrutura de códigoe, em seguida, deixar que os operadores humanos decidam como e onde executá-lo.

  1. Capturar evidências e gerar um relatório
    • Se a corrida for bem-sucedida, a Penligent poderá fazer a coleta automaticamente:
      • Artefatos do sistema de arquivos (qual arquivo foi criado e onde).
      • Eventos relevantes do Windows e rastros de ETW.
      • Uma narrativa explicando o impacto e as correções recomendadas.
    • Se ele falhar em condições realistas, isso também é valioso: ele informa que a aplicação de patches e o endurecimento estão fazendo seu trabalho.

Do feed do CVE ao impacto validado

A maioria das organizações agora ingere automaticamente os feeds de vulnerabilidade e os boletins da Patch Tuesday. A diferença está entre listagem de CVEs e classificá-los de acordo com a capacidade de exploração validada em seu ambiente.

Combinando fontes estruturadas, como NVD e MSRC, com textos técnicos aprofundados, como a pesquisa Cloud Files da Exodus, e permitindo que um mecanismo orientado por IA orquestre o código e os experimentos, você pode:

  • Trate o CVE-2025-55680 não apenas como uma entrada em uma planilha, mas como um risco específico e testado em máquinas específicas.
  • Crie detecções e painéis em torno de comportamento de exploração observadoe não apenas especulação.
  • Reutilize o mesmo pipeline na próxima vez que o Mini Filter do Cloud Files (ou qualquer pilha semelhante adjacente ao kernel) aparecer na Patch Tuesday.

O objetivo da Penligent nesse espaço é simples: transformar CVEs como o CVE-2025-55680 em respostas concretas e baseadas em evidências para "estamos realmente em risco e onde?", sem esperar que cada engenheiro faça engenharia reversa dos drivers do kernel e crie PoCs do zero.

Compartilhe a postagem:
Publicações relacionadas
pt_BRPortuguese