Falha em componente Rust do núcleo do Windows permite negação de serviço via metafile malformado

Falha em componente Rust do núcleo do Windows permite negação de serviço via metafile malformado

Metafile EMF+ especialmente construído aciona NtGdiSelectClipPath e provoca falha no win32kbase_rs.sys, causando tela azul em sistemas Windows afetados antes da correção distribuída pela Microsoft.

ComponenteComponente Rust win32kbase_rs.sys usado pelo subsistema gráfico GDI do Windows para manipulação de regiões derivadas de caminhos.
VetorArquivo EMF+ malformado com registro EmfPlusDrawBeziers, processado por fluxo GDI+ que cria um objeto Graphics a partir de um Metafile e chama DrawImage().
ImpactoNegação de serviço local ou induzida por conteúdo: a rotina do núcleo dispara core::panicking::panic_bounds_check(), gera SYSTEM_SERVICE_EXCEPTION e derruba o sistema com BugCheck.
PrioridadeAtualizar os sistemas Windows afetados, validar a versão do win32kbase_rs.sys e monitorar travamentos associados a metafiles processados por aplicações de usuário.
VersõesA falha foi observada no win32kbase_rs.sys versão 10.0.26100.3037; a correção começou no OS Build 26100.4202, distribuído no preview KB5058499 de 28 de maio de 2025.
ArtefatosRegistros EmfPlusObject e EmfPlusDrawBeziers, chamada NtGdiSelectClipPath, funções Win32kRS::RegionCore_set_from_path(), region_from_path_mut(), add_edge_original() e add_edge_new().
MitigaçãoAplicar as atualizações cumulativas que incorporam a alteração no win32kbase_rs.sys, confirmar a ativação efetiva da lógica corrigida e reduzir a exposição a metafiles não confiáveis.
Resumo técnico

A vulnerabilidade afeta a nova implementação em Rust de parte do processamento de regiões gráficas do GDI no núcleo do Windows. O problema aparece quando um metafile EMF+ malformado conduz o fluxo de execução até a conversão de um caminho em região dentro do win32kbase_rs.sys. Em vez de ficar restrito a uma falha controlada no processo de usuário que abriu ou renderizou o arquivo, o processamento atinge uma verificação de limites no núcleo, aciona core::panicking::panic_bounds_check() e encerra o sistema por meio de SYSTEM_SERVICE_EXCEPTION. O efeito confirmado é negação de serviço, com tela azul e reinicialização, sem necessidade de privilégio administrativo quando o conteúdo é processado em uma sessão padrão.

O gatilho técnico está associado a registros EMF+ que descrevem curvas Bezier e objetos de caneta usados para desenhar o caminho. O arquivo manipula a geometria para que, durante as etapas de ampliação, achatamento e transformação do caminho em região, a estrutura interna de arestas alcance um caso de borda incorreto. A falha foi reproduzida em sistemas x86 e x64 porque a rotina vulnerável fica no driver de núcleo win32kbase_rs.sys, não em uma biblioteca restrita à arquitetura do processo chamador. A exploração observada não depende de execução de código no núcleo; o dano confirmado vem da interrupção completa do sistema operacional quando o conteúdo gráfico é interpretado.

Fluxo técnico

O caminho de execução começa com um arquivo metafile que contém registros EMF+ embutidos em uma estrutura EMF. O formato permite encapsular registros privados por meio de EMR_COMMENT_EMFPLUS, e isso amplia a superfície de análise porque múltiplos registros EMF+ podem ficar dentro de um único registro EMF. No caso analisado, o registro relevante é EmfPlusDrawBeziers, acompanhado por um EmfPlusObject que define uma caneta geométrica. A combinação faz com que o traço seja tratado como largo, forçando o subsistema gráfico a calcular contornos e arestas adicionais antes de formar a região final.

A execução vulnerável é alcançada quando um objeto Metafile é usado em Graphics::FromImage() para criar um objeto Graphics, seguido por uma chamada a DrawImage(). Embora o método seja documentado para imagens adequadas a desenho, como Bitmap, esse uso com Metafile permite que o conteúdo malformado percorra a pilha GDI+ até chamadas de sistema. A trilha de falha inclui NtGdiSelectClipPath, passa por Win32kRS::RegionCore_set_from_path() e chega à rotina region_from_path_mut() no componente Rust. Nessa fase, o caminho é representado como blocos de arestas encadeados, e variáveis de iteração ultrapassam os limites esperados para a tabela ou coleção usada internamente.

A propriedade relevante da falha não é uma leitura ou escrita silenciosa fora dos limites que resulte diretamente em corrupção explorável confirmada. O dado disponível mostra que o próprio Rust detecta o acesso fora do intervalo e chama a rotina de pânico de limites. O problema operacional é que essa proteção ocorre em contexto de núcleo e termina em BugCheck, derrubando a máquina inteira. Em ambientes corporativos, um arquivo gráfico ou script que induza a renderização do metafile pode causar interrupção de estáções de trabalho em massa se for executado por contas de baixo privilégio que tenham acesso aos endpoints.

Superfície afetada

A superfície exposta está nos sistemas Windows que incluem o componente Rust win32kbase_rs.sys vulnerável para a implementação de regiões do GDI. A versão vulnerável citada é 10.0.26100.3037, e a correção começou a aparecer no OS Build 26100.4202, associado ao preview KB5058499 de 28 de maio de 2025. O texto técnico também indica que o componente vulnerável não está presente em versões Windows Server, o que reduz o escopo para servidores, mas mantém risco relevante em estáções de trabalho Windows modernas, especialmente onde arquivos gráficos são abertos automaticamente por pré-visualizadores, ferramentas de escritório, scripts internos ou aplicações que usam GDI+.

A condição de exploração exige que o conteúdo EMF+ malformado seja processado pelo fluxo gráfico que alcança DrawImage() e NtGdiSelectClipPath. Um usuário padrão em baixa integridade pode acionar a falha em sessão local quando consegue executar o fluxo de processamento do metafile. Em um cenário de domínio, credenciais de baixo privilégio ou mecanismos de distribuição de conteúdo podem aumentar o impacto operacional, porque a falha não precisa escalar privilégios para causar indisponibilidade. O ataque continua condicionado à renderização do metafile e ao estado de atualização do sistema.

  • Sistemas Windows com win32kbase_rs.sys vulnerável, incluindo a versão 10.0.26100.3037 observada durante a análise.
  • Fluxos que abrem, pré-visualizam, desenham ou convertem EMF e EMF+ por meio de GDI ou GDI+.
  • Sessões de usuário padrão capazes de processar o metafile malformado, inclusive por scripts que instanciam objetos gráficos.
  • Ambientes ainda sem o OS Build 26100.4202 ou sem atualizações posteriores que incorporem a correção efetiva.
Hunting e telemetria

A investigação defensiva deve começar por eventos de estabilidade do sistema e despejos de memória associados a SYSTEM_SERVICE_EXCEPTION, BugCheck e carregamento do módulo win32kbase_rs.sys. A presença de travamentos repetidos após abertura de arquivos gráficos, renderização de documentos ou execução de scripts que manipulam GDI+ deve ser tratada como sinal de prioridade. A telemetria de endpoint pode correlacionar o processo chamador, o arquivo de entrada e a hora do travamento para distinguir falhas acidentais de tentativas de acionamento deliberado.

Como não há indicadores de comprometimento persistentes nem hashes universais no material analisado, a busca deve se concentrar em comportamento. Registros de execução de PowerShell, criação de objetos .NET relacionados a imagem, chamadas que leem bytes de metafiles em variáveis e uso de métodos GDI+ antes de uma tela azul são sinais úteis. Em servidores de arquivos, gateways de e-mail e sistemas de colaboração, equipes podem procurar anexos ou arquivos recentes com extensão e assinatura compatíveis com EMF ou EMF+, principalmente quando vinculados a incidentes de reinicialização inesperada em endpoints.

A análise de memória pode confirmar a versão do módulo carregado e a pilha de chamadas, mas a coleta precisa estar configurada antes da reprodução porque a máquina reinicia após o BugCheck. Para ambientes que mantêm despejos completos, ferramentas forenses podem recuperar arquivos processados em memória ou em discos temporários, permitindo identificar o metafile que precedeu a queda. Essa abordagem é útil quando a falha ocorre durante fuzzing interno, processamento automatizado de documentos ou abertura de arquivos por aplicações que não registram claramente o artefato de entrada.

  • Eventos de BugCheck com SYSTEM_SERVICE_EXCEPTION e referência a win32kbase_rs.sys ou chamadas de GDI.
  • Processos de usuário que abriram ou desenharam arquivos EMF ou EMF+ imediatamente antes da reinicialização.
  • Uso de PowerShell ou .NET para carregar bytes de imagem, criar Metafile, chamar Graphics::FromImage() e executar DrawImage().
  • Arquivos gráficos recém-recebidos por e-mail, compartilhamentos, mensageria corporativa ou repositórios internos antes de múltiplas quedas de estáções.
  • Diferença de versão do win32kbase_rs.sys, com atenção para hosts ainda abaixo de 10.0.26100.4202 ou sem atualizações posteriores.
Mitigação

A ação principal é aplicar a atualização que inclui a correção do win32kbase_rs.sys e validar o resultado por inventário de versão, não apenas por presença nominal de um pacote. A correção começou no preview KB5058499 com OS Build 26100.4202; a lógica corrigida foi associada a alterações relevantes em region_from_path_mut() e à introdução de rotinas de tratamento de arestas como add_edge_new(). Como a execução do caminho corrigido dependeu de sinalização de recurso em testes iniciais, a verificação operacional deve confirmar que os sistemas receberam atualizações cumulativas posteriores e que a falha não é mais reproduzível em laboratório controlado.

A redução de exposição deve tratar metafiles como conteúdo ativo de risco quando vêm de origem não confiável. Controles de e-mail, proxy, EDR e DLP podem bloquear ou colocar em quarentena arquivos EMF e EMF+ fora de fluxos de negócio autorizados. Em estáções críticas, administradores podem revisar associações de arquivo, pré-visualização automática e aplicações que processam metafiles de forma implícita. Essas medidas não substituem a atualização, mas limitam a chance de um arquivo malformado chegar ao caminho vulnerável antes da correção.

Após a contenção, equipes de segurança devem revisar reinicializações inesperadas em massa, preservar despejos de memória relevantes e correlacionar a queda com artefatos recebidos no mesmo período. Se houver indício de distribuição deliberada, a resposta deve incluir remoção dos arquivos, bloqueio de hashes locais obtidos internamente, revisão dos canais de entrega, rotação de credenciais apenas quando houver evidência separada de comprometimento e comunicação para suporte de endpoint sobre a natureza de negação de serviço. A validação final deve incluir atualização completa, inventário de hosts remanescentes e teste com amostras benignas ou de laboratório que confirmem a ausência do BugCheck.

  • Instalar KB5058499 ou atualização cumulativa posterior que inclua a correção no win32kbase_rs.sys.
  • Confirmar a versão do módulo e o build do sistema, priorizando endpoints Windows usados por usuários finais.
  • Bloquear ou isolar EMF e EMF+ não confiáveis em e-mail, compartilhamentos e fluxos de transferência externa.
  • Desativar pré-visualização automática de metafiles em ambientes de maior risco quando a atualização ainda não puder ser aplicada.
  • Coletar e preservar despejos de memória de quedas recorrentes para confirmar SYSTEM_SERVICE_EXCEPTION no caminho GDI.
  • Executar caça por scripts ou aplicações que criem Metafile e chamem DrawImage() a partir de conteúdo controlado por usuário.

Postar um comentário

0 Comentários