
Apresentação educacional analisando a CVE-2021-21193, uma vulnerabilidade de use-after-free no mecanismo Blink do Google Chrome, incluindo detalhes de exploração e conselhos de mitigação.
Introdução ao Hacking
Apresentações de estudos de caso de vulnerabilidades
Março de 2022
Mehrzad Khodashenas, Setareh Sheikholeslamzadeh
Entrada do Dicionário CVE:
CVE-2021-21193
Data de publicação no NVD:
16/03/2021
Última modificação no NVD:
03/12/2021
Fonte:
Chrome
| atributo | valor |
|---|
| Gravidade | 7 |
| CVSS | (AV:N/AC:M/Au:N/C:P/I:P/A:P) |
| Publicado | 05/03/2021 |
| Criado | 06/03/2021 |
| Adicionado | 05/03/2021 |
| Modificado | 09/04/2021 |
Use after free no Blink no Google Chrome anterior à versão 89.0.4389.90 permitia que um atacante remoto potencialmente explorasse a corrupção de heap por meio de uma página HTML manipulada.
enter image description here
CVE, abreviação de Common Vulnerabilities and Exposures, é uma lista de falhas de segurança de computador divulgadas publicamente. Quando alguém se refere a um CVE, significa uma falha de segurança à qual foi atribuído um número de ID CVE. Os avisos de segurança emitidos por fornecedores e pesquisadores quase sempre mencionam pelo menos um ID CVE. Os CVEs ajudam os profissionais de TI a coordenar seus esforços para priorizar e resolver essas vulnerabilidades, tornando os sistemas de computador mais seguros. fonte

A equipe do Chrome publicou um anúncio em março de 2021 informando que, se você usa o Google Chrome em qualquer um dos seus dispositivos, é urgente atualizá-lo imediatamente. Há atualizações frequentes do Google Chrome, mas o patch mais recente, a versão estável 89.0.4389.90, corrige várias vulnerabilidades, três das quais com classificação de gravidade alta, e uma delas já foi explorada por cibercriminosos e hackers. fonte Foi uma das vulnerabilidades de alta gravidade chamada CVE-2021-21193. É uma vulnerabilidade no mecanismo de navegador Blink do Google Chrome, o principal componente responsável por converter código HTML nas páginas da Web bem projetadas que você está acostumado a navegar. Esse problema afeta determinado processamento não identificado no componente Blink, e a manipulação com uma entrada desconhecida leva a uma vulnerabilidade de corrupção de memória. Essa vulnerabilidade, que foi explorada por malfeitores, sugere que todos os usuários precisam atualizar para a versão 89.0.4389.90. É uma vulnerabilidade de use-after-free, o que significa que o Blink tinha dificuldade em limpar a memória. fonte
A fraqueza foi divulgada em 05/03/2021. Nenhuma forma de autenticação é necessária para uma exploração bem-sucedida, mas exige que a vítima realize algum tipo de interação do usuário. Há também um preço estimado para um exploit em torno de US$ 5 mil a US$ 25 mil, calculado em 28/03/2021. https://vuldb.com/?id.170687
Embora pareça trivial e comum, as consequências mais comuns de uma vulnerabilidade de use-after-free são corrupção de dados e execução arbitrária de código, o que, de acordo com a descrição da National Vulnerability Database para a própria vulnerabilidade CVE-2021-21193, pode permitir que "um atacante remoto explore potencialmente a corrupção de heap por meio de uma página HTML manipulada". fonte
Use-After-Free (UAF) é uma vulnerabilidade relacionada ao uso incorreto de memória dinâmica durante a operação do programa. Se, após liberar um local de memória, um programa não limpar o ponteiro para essa memória, um atacante pode usar o erro para invadir o programa.
As vulnerabilidades UAF têm origem no mecanismo de alocação dinâmica de memória. Diferentemente da pilha, a memória dinâmica (também conhecida como heap) é projetada para armazenar grandes quantidades de dados. Os programadores podem alocar blocos de tamanho arbitrário nela, que tarefas dentro de um programa podem modificar ou liberar e devolver ao heap para uso subsequente por outras tarefas no mesmo programa.
Os programas devem verificar continuamente quais áreas do heap estão livres e quais estão ocupadas, pois a memória dinâmica é realocada com frequência. Os cabeçalhos ajudam referenciando áreas de memória alocadas. O endereço inicial do bloco apropriado está contido em cada cabeçalho. Bugs de UAF surgem quando os programas não gerenciam esses cabeçalhos corretamente.
Ponteiros em um programa referem-se a conjuntos de dados na memória dinâmica. Se um conjunto de dados for excluído ou movido para outro bloco, mas o ponteiro, em vez de ser limpo (definido como nulo), continuar referenciando a memória agora liberada, o resultado é um ponteiro pendente. Se o programa então alocar esse mesmo bloco de memória para outro objeto (por exemplo, dados inseridos por um atacante), o ponteiro pendente passará a referenciar esse novo conjunto de dados. Em outras palavras, as vulnerabilidades UAF permitem a substituição de código.
Um atacante pode usar UAFs para passar código arbitrário, ou uma referência a ele, para um programa e navegar até o início do código usando um ponteiro pendente. Dessa forma, o cibercriminoso pode obter controle do sistema da vítima executando código malicioso. fonte
Um pesquisador de segurança anônimo relatou o CVE-2021-211193 em 9 de março, e o Google correu para lançar uma correção em apenas três dias. Essa pressa pode ser atribuída à exploração da vulnerabilidade no mundo real; criminosos já usaram a vulnerabilidade, e isso é motivo suficiente para todos corrigirem o Google Chrome o mais rápido possível. fonte
O Google geralmente não divulga informações sobre vulnerabilidades até que elas sejam corrigidas, e a vulnerabilidade CVE-2021-21193 foi corrigida em não mais que três dias após ser relatada por um pesquisador de segurança anônimo, o que muito provavelmente significa que a vulnerabilidade já havia sido explorada em uma situação do mundo real. Uma boa regra prática é que, se uma gigante da tecnologia como o Google leva um problema de segurança a sério, o resto de nós também deveria.
Mas há outra lição importante aqui: essas gigantes da tecnologia e seus produtos não são perfeitos; como o resto de nós, elas também fazem parte da corrida constante para manter sistemas e ferramentas seguros para usuários finais como você. É absolutamente vital manter seu software atualizado com os patches mais recentes de seus desenvolvedores, pois as atualizações mais recentes são as que foram criadas para minimizar a ameaça de ameaças cibernéticas em rápida evolução e avanço. fonte