Análise da vulnerabilidade de segurança e exploração da exposição de Valor Sentinel do motor Chrome V8

robot
Geração do resumo em andamento

Investigação sobre os riscos de segurança causados pela fuga de Sentinel Value no motor Chrome V8

O valor Sentinel é um valor utilizado como um marcador especial em algoritmos, geralmente como uma condição de término em loops ou recursões. No código-fonte do motor Chrome V8, existem vários valores Sentinel, alguns dos quais não devem ser expostos ao ambiente JavaScript. Este artigo discutirá métodos para contornar o mecanismo HardenProtect do Chrome V8 através da exposição de objetos Uninitialized Oddball.

Valor Sentinel no V8

O arquivo roots.h do código fonte V8 define uma grande quantidade de objetos nativos, que estão dispostos de forma adjacente na memória. Uma vez que esses objetos sejam vazados para o JavaScript, isso pode levar a uma fuga do sandbox.

Podemos verificar isso modificando a função nativa do V8. Por exemplo, alterando o deslocamento da função %TheHole() para que retorne um objeto Uninitialized Oddball em vez do objeto TheHole.

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

Contornar a proteção HardenType

A utilização de objetos Uninitialized Oddball permite realizar leituras de memória relativamente arbitrárias. A chave está na função read do JavaScript otimizada, que apenas verifica se a propriedade prop do objeto está correta, mas não verifica o valor com a chave obj.prop. Isso leva a uma confusão de tipos durante o processo de cálculo, permitindo assim leituras arbitrárias.

Ao analisar o código de montagem otimizado, pode-se ver que, ao passar uninitialized_oddball, o programa calcula diretamente o deslocamento e lê os dados, sem realizar uma verificação de tipo. Este método é mais fácil de construir e utilizar em comparação com o objeto TheHole.

Revelação exclusiva sobre como contornar o Chrome v8 HardenProtect através da divulgação do Sentinel Value

Revelação exclusiva sobre como contornar o Chrome v8 HardenProtect através da revelação do Sentinel Value

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

A solução recomendada é adicionar uma verificação ao map do array ao retornar os elementos do array na função otimizada, evitando retornar valores do array diretamente através do cálculo de deslocamento.

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

Aviso de Segurança PatchGap

Além de nos concentrarmos nas vulnerabilidades históricas conhecidas, também precisamos estar atentos aos problemas que os fabricantes silenciosamente corrigem nos componentes básicos. Após análise, descobrimos que o software Skype ainda não corrigiu essa vulnerabilidade. Na plataforma x86, devido à falta de compressão de endereços, o intervalo de leitura e escrita é maior, podendo quase ler e escrever todo o espaço de processo.

Esta atualização do PatchGap não só envolve a Issue1352549, mas também inclui vulnerabilidades semelhantes como a Issue1314616 e a Issue1216437. Após a divulgação do novo método de contorno, a dificuldade de exploração dessas vulnerabilidades foi significativamente reduzida, permitindo que os atacantes quase não precisem de pesquisa adicional para completar uma cadeia de exploração completa.

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

Resumo

Este artigo explora brevemente o método para leitura arbitrária através da divulgação de Uninitialized Oddball. Existem também vários outros valores Sentinel no V8, que podem causar problemas semelhantes. Isso nos alerta:

  1. Outras vazamentos uninitialized_Oddball podem igualmente levar à fuga da sandbox V8.

  2. A questão de saber se tais problemas devem ser considerados vulnerabilidades de segurança formais ainda é controversa.

  3. Considerar a inclusão de um valor Sentinel como variável nos testes de fuzzing, para descobrir novos métodos de exploração.

De qualquer forma, este tipo de problema irá encurtar significativamente o ciclo de tempo necessário para que um atacante consiga explorar completamente, e merece uma atenção elevada.

Revelação exclusiva sobre como contornar o HardenProtect do Chrome v8 através da divulgação do Valor Sentinel

SENC0.03%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 4
  • Compartilhar
Comentário
0/400
MoonBoi42vip
· 15h atrás
Estou um pouco ansioso, há muitos buracos.
Ver originalResponder0
SleepyArbCatvip
· 08-02 05:40
O gato que está tão cansado que só consegue programar...zZz
Ver originalResponder0
ChainDetectivevip
· 08-02 05:38
Caramba, vulnerabilidade do motor v8, está garantido.
Ver originalResponder0
LadderToolGuyvip
· 08-02 05:36
Fiquei pasmo. Vamos brincar com a quebra.
Ver originalResponder0
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)