Explorar as vulnerabilidades de segurança do Sentinel Value no motor Chrome V8
O valor Sentinel é um valor especial em algoritmos, geralmente utilizado como condição de término em algoritmos de iteração ou recursão. No código-fonte do Chrome, existem vários valores Sentinel, alguns dos quais podem causar vulnerabilidades de segurança. Este artigo discutirá como contornar o mecanismo de proteção HardenProtect do motor Chrome V8 através da revelação de objetos Uninitialized Oddball.
Valor Sentinel no V8
No motor V8, são definidos vários objetos nativos, que estão dispostos de forma adjacente na memória. Se objetos nativos que não deveriam vazar para o JavaScript forem expostos, isso pode levar à execução de qualquer código dentro da sandbox.
Contornar a proteção HardenType
Ao modificar as funções nativas do V8, é possível vazar objetos Oddball não inicializados para o JavaScript. Aproveitando este objeto vazado, é possível realizar operações de leitura e escrita relativamente arbitrárias, contornando assim a proteção HardenType.
A forma específica de implementação é:
Modificar a função %TheHole() para que retorne um objeto Uninitialized Oddball.
Construir um código JavaScript especial, aproveitando a falta de verificação do array map na função otimizada, para calcular diretamente o deslocamento e retornar os valores do array.
Através da confusão de tipos, realizar leitura e escrita arbitrárias
Aviso de Risco PatchGap
Este método de bypass não só se aplica à versão mais recente do V8, mas também pode afetar softwares que utilizam versões antigas do V8. Por exemplo, o Skype ainda não corrigiu esta vulnerabilidade. Na arquitetura x86, devido à falta de compressão de endereços, o alcance de leitura e escrita arbitrária pode ser maior.
Além disso, este novo método de contorno pode também reduzir a dificuldade de exploração de outras vulnerabilidades relacionadas, como Issue1314616 e Issue1216437.
Resumo e Reflexão
Existem também vários outros valores Sentinel no V8, que podem ter igualmente riscos de segurança. As direções futuras da pesquisa podem incluir:
Explorar se outras fugas de Uninitialized Oddball também podem permitir RCE do V8
Considere adicionar o valor Sentinel como variável nos testes de fuzzing para descobrir mais potenciais primitivas de exploração.
Prestar atenção se este tipo de problema será oficialmente considerado uma questão de segurança e avaliar o seu impacto na redução do ciclo de exploração total por parte dos hackers.
Independentemente de essas questões serem formalmente classificadas como problemas de segurança, elas podem encurtar significativamente o tempo que os hackers levam para explorar completamente. Portanto, é crucial monitorar e investigar continuamente as questões de segurança relacionadas ao valor do Sentinel.
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.
17 gostos
Recompensa
17
6
Partilhar
Comentar
0/400
AirdropSweaterFan
· 07-08 03:03
Outra vez o buraco do v8? No mês passado consertamos um monte.
Ver originalResponder0
HashBard
· 07-05 03:39
omg os sentinelas do v8 são como poesia... os quebrados derramam todos os segredos fr fr
Ver originalResponder0
RetiredMiner
· 07-05 03:38
Este bug eu consigo escrever um exp de olhos fechados.
Ver originalResponder0
GhostInTheChain
· 07-05 03:31
O motor v8 fez algo grande novamente!
Ver originalResponder0
DeFiChef
· 07-05 03:30
Interessante, é preciso seguir esta vulnerabilidade.
Análise e exploração da vulnerabilidade de segurança Sentinel Value do motor Chrome V8
Explorar as vulnerabilidades de segurança do Sentinel Value no motor Chrome V8
O valor Sentinel é um valor especial em algoritmos, geralmente utilizado como condição de término em algoritmos de iteração ou recursão. No código-fonte do Chrome, existem vários valores Sentinel, alguns dos quais podem causar vulnerabilidades de segurança. Este artigo discutirá como contornar o mecanismo de proteção HardenProtect do motor Chrome V8 através da revelação de objetos Uninitialized Oddball.
Valor Sentinel no V8
No motor V8, são definidos vários objetos nativos, que estão dispostos de forma adjacente na memória. Se objetos nativos que não deveriam vazar para o JavaScript forem expostos, isso pode levar à execução de qualquer código dentro da sandbox.
Contornar a proteção HardenType
Ao modificar as funções nativas do V8, é possível vazar objetos Oddball não inicializados para o JavaScript. Aproveitando este objeto vazado, é possível realizar operações de leitura e escrita relativamente arbitrárias, contornando assim a proteção HardenType.
A forma específica de implementação é:
Aviso de Risco PatchGap
Este método de bypass não só se aplica à versão mais recente do V8, mas também pode afetar softwares que utilizam versões antigas do V8. Por exemplo, o Skype ainda não corrigiu esta vulnerabilidade. Na arquitetura x86, devido à falta de compressão de endereços, o alcance de leitura e escrita arbitrária pode ser maior.
Além disso, este novo método de contorno pode também reduzir a dificuldade de exploração de outras vulnerabilidades relacionadas, como Issue1314616 e Issue1216437.
Resumo e Reflexão
Existem também vários outros valores Sentinel no V8, que podem ter igualmente riscos de segurança. As direções futuras da pesquisa podem incluir:
Independentemente de essas questões serem formalmente classificadas como problemas de segurança, elas podem encurtar significativamente o tempo que os hackers levam para explorar completamente. Portanto, é crucial monitorar e investigar continuamente as questões de segurança relacionadas ao valor do Sentinel.