Falha no Edge permite instalação de Malware JavaScript


Foi divulgado publicamente pela equipe Project Zero do Google,uma vulnerabilidade no Microsoft Edge ainda não foi corrigida pela Microsoft. Esta vulnerabilidade torna possível para um atacante burlar o recurso de segurança do navegador do Windows 10 conhecido como Arbitrary Code Guard (ACG).

O ACG foi criado para impedir o carregamento de códigos maliciosos na memória a partir do navegador. Combinado com o recurso Code Integrity Guard, ele se certifica de que apenas código assinado digitalmente por uma fonte confiável seja carregado na memória.

Como isso causava problemas com alguns compiladores JavaScript Just-In-Time (JIT) que convertem JavaScript para código nativo, a Microsoft o moveu para um processo separado que roda em um ambiente próprio isolado. O problema é que um pesquisador de segurança do Google descobriu como burlar o ACG e assim carregar conteúdo não assinado na memória.

O Problema

Se um processamento de conteúdo estiver comprometido e este processo puder prever em qual endereço que o JIT vai chamar VirtualAllocEx() seguinte (nota: é bastante previsível), o processo de conteúdo pode:

  1. Desmarcar a memória compartilhada mapeada acima usando UnmapViewOfFile()
  2. Alocar uma região de memória como disponível para gravação no mesmo endereço o servidor JIT vai escrever uma carga útil.
  3. Quando o processo JIT chama VirtualAllocEx(), mesmo que a memória já esteja alocada, a chamada terá sucesso e a proteção de memória será definida como PAGE_EXECUTE_READ.

Nota # 1: O conteúdo escrito na etapa 2 vai sobreviver à mudança de proteção de memória.
Nota # 2: o servidor JIT vai escrever a carga útil do JIT em seu próprio “lado” da memória compartilhada, de modo que o conteúdo do Processo de Conteúdo não será imediatamente substituído.

Status da Correção

A vulnerabilidade foi classificada pelo Googel como sendo de “médio risco”, mas a Microsoft respondeu que uma solução para o problema seria muito complexa. A empresa também afirmou que não seria possível resolver o problema antes do prazo inicial da Google expirar. Vulnerabilidades encontradas pelo Google têm um prazo de 90 dias após o qual são divulgadas. Este período pode ser prolongado com duas semanas. A Microsoft não pôde resolver o problema tanto no período inicial como no período prolongado e, portanto, o Google tornou a vulnerabilidade pública hoje.

Deixe um comentário