Destaques WebStory

Pesquisadores do Google revelam vulnerabilidade grave em GPUs Qualcomm Adreno

Google revela falha de segurança em GPUs Qualcomm Adreno, exposta após prazo de 90 dias sem correção.
Imagem de: Pesquisadores do Google revelam vulnerabilidade grave em GPUs Qualcomm Adreno

A equipe do Project Zero (GPZ) do Google revelou uma falha de segurança de alta gravidade nas GPUs Qualcomm Adreno. Como a fabricante do chip não conseguiu desenvolver um patch de correção no prazo de 90 dias após o reporte da vulnerabilidade, o Google divulgou publicamente os detalhes do bug.

De acordo com a política de divulgação revisada, o GPZ precisa esperar pelo menos 90 dias antes de revelar publicamente os detalhes de uma falha de segurança, mesmo que o bug seja corrigido antes desse prazo.

Além disso, os fornecedores podem solicitar um período de carência adicional de 14 dias ao Google se acreditarem que não serão capazes de corrigir a vulnerabilidade relatada em 90 dias.

O driver Adreno GPU associa uma estrutura de dispositivo privada (process_priv) a cada descritor de arquivo KGSL, que contém as tabelas de página que são usadas para alternar o contexto da GPU.

Essa estrutura está ligada ao PID do processo de chamada e pode ser reutilizada várias vezes por descritores de arquivo KGSL adicionais no mesmo processo, presumivelmente para economizar o custo de realizar uma alternância de contexto de GPU entre contextos de desenho no mesmo processo.

Quando um processo se bifurca, o filho herda os descritores de arquivo KGSL do pai junto com a estrutura privada associada ao PID do pai.

Se um processo filho contém um descritor de arquivo KGSL que foi originalmente aberto em um processo pai, e se esse processo pai sai, o filho ainda mantém uma referência à estrutura privada associada ao PID do pai.

No entanto, se o PID dos pais for reutilizado por um processo de vítima, a vítima reutilizará a estrutura privada existente em vez de criar uma nova.

Na prática, isso dá ao processo filho que pode ser usado por um invasor, a capacidade de ler quaisquer mapeamentos compartilhados de GPU subsequentes que o processo de vítima cria, uma vez que seus contextos de desenho são considerados em execução no mesmo contexto de GPU.

De acordo com o Project Zero, "um ataque no mundo real exigiria que o invasor fizesse um loop do PID e, em seguida, acione uma intenção bem-cronometrada ou reinicie o serviço do sistema por meio de um bug de falha.

A exploração provavelmente tentaria recuperar o conteúdo da composição de GPU da vítima (ou os resultados de outras operações de GPU)."

Em 15 de setembro de 2020, a equipe de pesquisa do Google entrou em contato com a Qualcomm para relatar a vulnerabilidade junto com sugestões de correção de bug.

A equipe de pesquisa deu à Qualcomm um prazo de 90 dias para corrigir o problema antes de revelar publicamente os detalhes do bug, de acordo com a política de divulgação revisada. No entanto, o prazo expirou em 14 de dezembro.

Além disso, em 7 de dezembro de 2020, a Qualcomm informou ao Project Zero que o problema (CVE-2020-11311) foi resolvido e compartilhado no boletim OEM privado com um comunicado público planejado para janeiro de 2021.

A isso, a equipe de pesquisa do Google respondeu que o problema será divulgado em 14 de dezembro e solicitado um link para os patches relevantes, que foi prontamente fornecido pela Qualcomm.

Mas, ao investigar o patch proposto, o Google descobriu que ele introduziu um problema de contagem de referência levando a um UAF explorável.

Por exemplo, o patch para este bug de vazamento de informações está introduzindo um bug de escalonamento de privilégios de kernel.

O Project Zero compartilhou detalhes do novo UAF que o patch introduziu em 10 de dezembro de 2020, ao qual a Qualcomm respondeu que está investigando as novas informações.

Como o prazo final de 14 de dezembro não foi cumprido pela Qualcomm, o Project Zero foi em frente e expôs publicamente a falha de alta gravidade no driver da GPU Adreno.

Embora sob a política de divulgação revisada, os fornecedores podem solicitar um período de carência adicional de 14 dias para corrigir a falha, não está claro no boletim do Google se a Qualcomm o fez.

Com o bug de segurança agora público, a Qualcomm precisa trabalhar ainda mais em uma solução rápida para o processador, antes que qualquer invasor encontre uma maneira eficaz de explorar a falha.

Fonte: Chromium