Análise e defesa da vulnerabilidade de vazamento de Valor Sentinel do motor Chrome V8

robot
Geração do resumo em andamento

Análise técnica da técnica de contornar o HardenProtect do Chrome V8 com o Sentinel Value

O valor sentinel é um valor especial em algoritmos, normalmente utilizado como condição de término em algoritmos de loop ou recursivos. No código-fonte do Chrome, existem muitos valores sentinel. Pesquisas recentes mostraram que é possível realizar a execução de código arbitrário dentro do sandbox através da exploração do objeto TheHole, resultando nos CVEs 2021-38003 e 2022-1364. A equipe do Google, posteriormente, atualizou essas duas vulnerabilidades em ambiente selvagem.

Além do objeto TheHole, existem outros objetos nativos que não devem ser expostos ao JavaScript no V8. Este artigo discute o objeto Uninitialized Oddball, cuja forma de contorno ainda pode ser utilizada na versão mais recente do V8.

A maioria dos objetos nativos do V8 está definida no arquivo v8/src/roots/roots.h, e esses objetos estão dispostos de forma adjacente na memória. Uma vez que um objeto nativo que não deveria ser exposto seja vazado para o JavaScript, pode-se potencialmente executar qualquer código dentro do sandbox.

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

Para validar esse método, pode-se modificar a função nativa do V8 para vazar o Oddball Não Inicializado para o JavaScript. Especificamente, pode-se modificar o deslocamento relativo ao isolate na função %TheHole() para que retorne o Oddball Não Inicializado.

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

Utilizando Oddball não inicializado, é possível realizar leitura e escrita relativamente arbitrárias. A função de leitura do JavaScript otimizada calculará diretamente o deslocamento de acordo com a semântica do JavaScript, obtendo os valores do array, o que leva à confusão de tipos e permite leitura arbitrária.

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

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

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

A solução de correção sugerida é adicionar uma verificação do map do array ao retornar elementos do array da função otimizada, evitando o cálculo direto do deslocamento para retornar valores do array.

É importante notar que este método não se aplica apenas ao Chrome, mas outros softwares que utilizam o motor V8 também podem ser afetados. Por exemplo, o Skype ainda não corrigiu esta vulnerabilidade. No x86, devido à ausência de compressão de endereços, leituras e gravações arbitrárias são feitas diretamente em relação a todo o processo.

Exclusivo: Revelação sobre como contornar o HardenProtect do Chrome 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

Exclusivo: Revelação de como contornar o HardenProtect do Chrome v8 através da exposição do Sentinel Value

Exclusivo: como contornar o HardenProtect do Chrome v8 através da divulgação do Sentinel Value

De um modo geral, a divulgação do uninitialized_Oddball no valor Sentinel pode permitir a leitura arbitrária de primitivos. Existem outros valores Sentinel no V8 que podem causar problemas semelhantes. Recomenda-se adicionar esses valores Sentinel como variáveis ao fuzzer, para descobrir mais potenciais primitivos exploráveis. Independentemente de serem formalmente considerados problemas de segurança, esses tipos de problemas podem reduzir significativamente o tempo que os hackers levam para implementar uma exploração completa.

SENC-4.61%
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
TommyTeachervip
· 07-20 16:35
É realmente um pouco perigoso, hein?
Ver originalResponder0
BrokeBeansvip
· 07-20 16:22
Passar o dia a pensar em escavar buracos, não é melhor resolver questões à mão?
Ver originalResponder0
GateUser-ccc36bc5vip
· 07-20 16:13
É assim tão fraco o v8 proteção?
Ver originalResponder0
StablecoinGuardianvip
· 07-20 16:09
Oh oh, o V8 está com problemas de segurança novamente.
Ver originalResponder0
  • Marcar
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)