
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.
| Componente | Componente Rust win32kbase_rs.sys usado pelo subsistema gráfico GDI do Windows para manipulação de regiões derivadas de caminhos. |
| Vetor | Arquivo EMF+ malformado com registro EmfPlusDrawBeziers, processado por fluxo GDI+ que cria um objeto Graphics a partir de um Metafile e chama DrawImage(). |
| Impacto | Negaçã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. |
| Prioridade | Atualizar 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ões | A 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. |
| Artefatos | Registros EmfPlusObject e EmfPlusDrawBeziers, chamada NtGdiSelectClipPath, funções Win32kRS::RegionCore_set_from_path(), region_from_path_mut(), add_edge_original() e add_edge_new(). |
| Mitigação | Aplicar 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. |
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.
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.
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.sysvulnerável, incluindo a versão10.0.26100.3037observada durante a análise. - Fluxos que abrem, pré-visualizam, desenham ou convertem
EMFeEMF+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.4202ou sem atualizações posteriores que incorporem a correção efetiva.
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
BugCheckcomSYSTEM_SERVICE_EXCEPTIONe referência awin32kbase_rs.sysou chamadas deGDI. - Processos de usuário que abriram ou desenharam arquivos
EMFouEMF+imediatamente antes da reinicialização. - Uso de PowerShell ou .NET para carregar bytes de imagem, criar
Metafile, chamarGraphics::FromImage()e executarDrawImage(). - 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 de10.0.26100.4202ou sem atualizações posteriores.
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
KB5058499ou atualização cumulativa posterior que inclua a correção nowin32kbase_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
EMFeEMF+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_EXCEPTIONno caminho GDI. - Executar caça por scripts ou aplicações que criem
Metafilee chamemDrawImage()a partir de conteúdo controlado por usuário.
0 Comentários