1 pontos por GN⁺ 2024-10-18 | 1 comentários | Compartilhar no WhatsApp

Introdução

  • Este post de blog explica o processo de descoberta das vulnerabilidades CVE-2024-6778 e CVE-2024-5836 no navegador Chromium.
  • Essas vulnerabilidades permitem escapar da sandbox por meio de extensões do navegador.
  • O Google pagou $20,000 por esse relatório de bugs.

WebUIs e a sandbox do Chrome

  • O Chromium executa código não confiável em um ambiente de sandbox, permitindo apenas interações limitadas.
  • WebUI é usada para exibir a GUI do Chromium e tem permissão para acessar APIs internas específicas.
  • O código executado em páginas WebUI pode contornar a sandbox, o que pode ser explorado por um atacante.

Políticas empresariais

  • O sistema de políticas empresariais do Chromium serve para impor determinadas configurações em dispositivos pertencentes a empresas ou escolas.
  • As políticas de usuário se aplicam a um usuário específico ou a uma instância do navegador e podem ser definidas localmente.

WebUI de políticas

  • O Chromium tem uma WebUI para visualizar as políticas atualmente aplicadas ao dispositivo.
  • Existe nessa página uma funcionalidade não oficial que permite editar políticas.

Exploração da página de teste de políticas

  • Foi encontrada uma menção à página de teste de políticas nas notas de lançamento do Chrome v117.
  • Essa página oferece uma forma não oficial de definir políticas.

Escape da sandbox

  • É possível escapar da sandbox explorando a funcionalidade que permite definir políticas de usuário arbitrárias.
  • É possível executar comandos de shell arbitrários usando o recurso de alternância de navegador.

Exploração da API do DevTools

  • Foi encontrado um método para executar JS automaticamente na página chrome://policy por meio de uma extensão maliciosa do Chrome.
  • A API chrome.devtools.inspectedWindow.reload() pode ser usada para executar código em uma página WebUI.

Conclusão

  • Isso mostra como erros simples, quando se acumulam, podem levar a uma vulnerabilidade de alta severidade.
  • Código antigo nem sempre é seguro, e é preciso considerar a possibilidade de bugs semelhantes ocorrerem.

Resumo do GN⁺

  • Este post de blog explica em detalhes o processo de descoberta e relato de uma vulnerabilidade no Chromium.
  • A vulnerabilidade permite escapar da sandbox por meio de extensões do navegador, e rendeu uma recompensa de $20,000 do Google.
  • O texto oferece informações úteis para pesquisadores de segurança e engenheiros de software, além de lições para evitar vulnerabilidades semelhantes.
  • Como outro projeto com funcionalidades semelhantes, pode-se recomendar os recursos de segurança do Firefox.

1 comentários

 
GN⁺ 2024-10-18
Comentários do Hacker News
  • Isso me lembrou de quando eu depurava o shell "crosh" no Chrome OS e usei a mesma API para contornar as proteções do sistema operacional e obter acesso root. O autor deste texto superou obstáculos ainda mais difíceis. Excelente trabalho

  • Para evitar que a URL da página seja substituída por ${url}, dá para colocá-la depois de # e transformá-la em comentário. Fico me perguntando se existe alguma lógica de validação sobre se a URL deve ser passada para AlternativeBrowserParameters

  • Excelente artigo e excelente trabalho. Deu para sentir junto a empolgação do processo de descoberta. Recompensa merecida

  • Uma cadeia de vulnerabilidades muito legal e um ótimo texto. A análise do código vulnerável também foi muito boa. Sempre fico impressionado com truques simples como "pressione F12 para tentar novamente"

  • Está tarde demais para eu mergulhar fundo nos problemas de validação do WebUI, mas deixo meus parabéns para quem resolveu isso. É comum suspeitarmos e desconfiarmos das toolchains em relação ao que distribuímos, mas ao mesmo tempo colocamos confiança demais nas ferramentas de desenvolvimento convenientes de grandes empresas como Google ou MS. Em grande parte porque queremos nos concentrar em escrever e testar nosso próprio código

  • Sinceramente, uma das melhores coisas que já li. Trabalho investigativo extremamente inteligente

  • Dizem que Allen é um estudante do ensino médio interessado em programação, desenvolvimento web e cibersegurança. Muito impressionante

  • O projeto Chromium decidiu remover chrome://net-internals porque a página era complexa demais. E depois adicionou chrome://policy, oferecendo suporte incompleto para edição de JSON

  • Texto realmente muito bom, pareceu um thriller. Excelente cadeia de vulnerabilidades