Análise e exploração das vulnerabilidades de segurança do Valor Sentinel do motor Chrome V8

Análise do Valor Sentinel no motor V8 do Google Chrome e seus riscos de segurança

O valor Sentinel é um valor especial em algoritmos, frequentemente utilizado como condição de término para loops ou recursões. O código fonte do Chrome contém vários valores Sentinel, alguns dos quais, se vazados para o ambiente JavaScript, podem causar problemas de segurança. Este artigo irá explorar métodos para contornar o mecanismo HardenProtect do Chrome V8 utilizando objetos Uninitialized Oddball vazados.

Valor Sentinel no V8

O arquivo roots.h do código-fonte V8 define uma grande quantidade de objetos nativos, que estão dispostos na memória em sequência. Se esses objetos nativos, que não deveriam ser expostos ao JavaScript, forem vazados, isso pode levar a uma fuga da sandbox. O vazamento do objeto TheHole no passado é um caso típico.

Para verificar o problema na versão mais recente do V8, pode-se modificar a função %TheHole() para que retorne um objeto Uninitialized Oddball:

javascript print(%DebugPrint(%TheHole())); // Saída: Valor não inicializado

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

Contornar a proteção HardenType

Usando Oddball não inicializado, é possível construir o seguinte código PoC para realizar leituras arbitrárias:

javascript function read(obj, idx) { return obj[idx]; }

let uninitialized = %TheHole(); let arr = [1.1]; %PrepareFunctionForOptimization(ler); read(arr, 0); read(arr, 0); %OptimizeFunctionOnNextCall(ler); read(arr, 0);

print(ler(não inicializado, 0x1234n));

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

A função read otimizada pela descompilação mostra que não verifica estritamente o tipo Value de obj.prop, calculando diretamente o deslocamento de acordo com a semântica JavaScript e retornando elementos do array, o que leva a uma confusão de tipos que permite a leitura arbitrária.

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

A proposta de solução é adicionar uma verificação do array map ao retornar elementos do array da função otimizada, evitando o cálculo direto do valor de retorno de deslocamento.

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

Aviso de Risco PatchGap

A análise revelou que alguns softwares como o Skype podem ter problemas de PatchGap, que ainda não foram corrigidos. Os hackers podem explorar essa vulnerabilidade para completar uma cadeia de exploração em um curto espaço de tempo.

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

Além disso, após a divulgação do novo método de contorno, a dificuldade de exploração de algumas vulnerabilidades históricas (, como Issue1314616 e Issue1216437), diminuiu significativamente. Recomenda-se que os fabricantes reavaliem o risco de segurança associado a essas vulnerabilidades.

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 divulgação do Sentinel Value

Resumo

Existem muitos outros valores Sentinel no V8 que valem a pena ser pesquisados mais a fundo. É aconselhável considerar a adição de variáveis como %TheHole/Uninitialized_Oddball ao Fuzzer, para explorar novos primitivos de exploração. Independentemente de esses tipos de problemas serem oficialmente classificados como problemas de segurança, eles podem encurtar significativamente o ciclo de exploração completo dos hackers.

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

SENC10.53%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 5
  • Republicar
  • Partilhar
Comentar
0/400
ParanoiaKingvip
· 14h atrás
Mais um ponto de risco.
Ver originalResponder0
WenMoon42vip
· 14h atrás
Outra vez é Profundidade de pesquisa, huh?
Ver originalResponder0
CryptoSourGrapevip
· 14h atrás
Afinal, aqui também há buracos.
Ver originalResponder0
ForkItAllDayvip
· 14h atrás
Uma nova abordagem para o estouro de pilha
Ver originalResponder0
Fren_Not_Foodvip
· 14h atrás
Desviar de falhas é muito impressionante.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)