Nova vulnerabilidade do motor Chrome V8: vaza Oddball não inicializado contornando a sandbox

robot
Geração do resumo em andamento

Como contornar o HardenProtect do Chrome V8 através da divulgação do Valor Sentinel

Introdução

O valor sentinel é um tipo especial de valor em algoritmos, frequentemente utilizado em algoritmos de loop ou recursivos como condição de término. Este tipo de valor é amplamente utilizado no código-fonte do Chrome. Recentemente, pesquisadores de segurança descobriram que a divulgação do objeto TheHole poderia permitir a execução de código arbitrário dentro do sandbox do Chrome. A equipe do Google rapidamente corrigiu essas duas vulnerabilidades em estado selvagem.

No entanto, existem outros objetos nativos no V8 que não devem ser expostos ao JavaScript. Este artigo discutirá um novo objeto: Uninitialized Oddball. Este método de contorno apareceu pela primeira vez em um Issue submetido por um membro do Project0 e ainda está disponível na versão mais recente do V8.

É importante notar que este método possui uma forte universalidade:

  1. No CVE-2021-30551, o primeiro POC é a divulgação de oddball interno não inicializado.

  2. O POC do CVE-2022-1486 também revelou diretamente o UninitializedOddball.

  3. Um problema não atribuído a um CVE também utilizou este método.

Estes casos são suficientes para demonstrar a importância do problema, valendo a pena rever o software que pode ser afetado.

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

Valor Sentinel no V8

A maioria dos objetos nativos do V8 está definida no arquivo v8/src/roots/roots.h, e eles estão dispostos sequencialmente na memória. Uma vez que esses objetos nativos, que não devem vazar, sejam vazados para o JavaScript, isso pode levar à execução de código arbitrário dentro do sandbox.

Podemos vazar Oddball Não Inicializado para o JavaScript modificando a função nativa do V8. O método específico é alterar o deslocamento relativo do isolate na função %TheHole() para que retorne Oddball Não Inicializado.

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

Contornar HardenType

A utilização de Uninitialized Oddball permite a leitura e escrita relativamente arbitrária. A chave está no fato de que a função de leitura otimizada apenas verifica a propriedade prop do obj, sem verificar o valor de obj.prop como chave. Isso leva a uma confusão de tipos durante os cálculos, permitindo assim uma leitura arbitrária.

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

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

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

Na arquitetura x86, devido à falta de compressão de endereços, a leitura e escrita aleatória são relativas a todo o processo. Embora a conveniência trazida pela falta de compressão de endereços não esteja disponível, devido ao tamanho de alguns arquivos de software grandes, ainda é possível ler e escrever o conteúdo alvo com uma probabilidade relativamente alta.

Revelação Exclusiva: Como Contornar o HardenProtect do Chrome v8 Através da Vazamento de Sentinel Value

Aviso PatchGap

Este PatchGap não só envolve o Issue1352549, mas também múltiplas vulnerabilidades, incluindo questões semelhantes a Issue1314616 e Issue1216437. Após a divulgação do novo método de bypass, a dificuldade de exploração dessas vulnerabilidades diminuiu significativamente. Os hackers quase não precisam de pesquisa adicional para completar a cadeia de exploração.

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

Resumo

Existem muitos outros valores Sentinel no V8, que também podem ter problemas semelhantes. Isso nos dá algumas pistas:

  1. A divulgação de outros uninitialized_Oddball pode também permitir RCE no V8?

  2. Estas questões devem ser formalmente consideradas como problemas de segurança?

  3. Deverá o valor Sentinel ser adicionado como variável no teste Fuzzer?

De qualquer forma, este tipo de problema irá encurtar significativamente o ciclo para que os hackers consigam uma exploração completa, o que merece a nossa alta atenção.

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

SENC2.36%
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
  • 6
  • Repostar
  • Compartilhar
Comentário
0/400
ContractTestervip
· 08-15 05:19
Velhos buracos, novos problemas surgem novamente.
Ver originalResponder0
BlockchainWorkervip
· 08-13 17:55
a vulnerabilidade v8 é muito grave
Ver originalResponder0
SocialFiQueenvip
· 08-12 12:23
Problemas graves precisam de seguir para solução
Ver originalResponder0
CryptoFortuneTellervip
· 08-12 12:15
A vulnerabilidade ainda não foi corrigida.
Ver originalResponder0
GamefiHarvestervip
· 08-12 12:12
Uau, o V8 saiu novamente!
Ver originalResponder0
CryptoSurvivorvip
· 08-12 12:11
Mais uma vez, o sandbox foi contornado.
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)