LeanBic

(Atualizado) Google corrige silenciosamente divulgação anterior sobre vulnerabilidade crítica Zero-Day

Nesta segunda o Google ressubmeteu silenciosamente uma divulgação (CVE-2023-5129) de vulnerabilidade crítica com possibilidade de execução de código, afetando milhares de aplicativos individuais e estruturas de software, após sua submissão anterior deixar a impressão equivocada de que a ameaça afetava apenas o navegador Chrome. No CVE-2023-4863 de algumas semanas atrás não foram menionados os aplicativos afetados.

Esta vulnerabilidade foi encontrada em uma biblioteca de software conhecida como libwebp, que é utilizada por diversos softwares: 1Password, Signal, Safari, Mozilla Firefox, Microsoft Edge, Opera, navegadores web nativos do Android etc.

Portanto, é urgente que você identifique e corrija essa vulnerabilidade onde quer que ela exista em seu ambiente.

Atualizações:

Boas notícias para empresas que utilizam scanners de vulnerabilidades é que finalmente poderão detectar automaticamente este problema, e proceder com a correção em todos os seus sistemas afetados.

O Tom Sellers, engenheiro de pesquisa principal da runZero, também compartilhou um comando shell que pode ser executado no macOS para ver quais aplicativos são baseados em qual versão do Electron (as versões 22.3.24, 24.8.3, 25.8.1, 26.2.1 e 27.0.0-beta.2 possuem o patch).

O threat hunter Michael Taggart compilou e está atualizando uma lista de aplicativos baseados no Electron, indicando a versão em uso.

Detalhes da vulnerabilidade

A vulnerabilidade tem origem na biblioteca de código libwebp, que o Google criou em 2010 para renderizar imagens em webp, um formato então novo que resultava em arquivos até 26 por cento menores do que as imagens PNG. O libwebp está incorporado em praticamente todos os aplicativos, sistemas operacionais ou outras bibliotecas de código que renderizam imagens webp, principalmente o framework Electron usado no Chrome e em muitos outros aplicativos que rodam em dispositivos desktop e móveis.

Duas semanas atrás, o Google emitiu um aviso de segurança (CVE-2023-4863) para o que afirmava ser um estouro de buffer no heap no WebP no Chrome. A descrição formal do Google delimitou o fornecedor afetado como “Google” e o software afetado como “Chrome”, mesmo que qualquer código que usasse o libwebp fosse vulnerável. Críticos alertaram que a falha do Google em mencionar que milhares de outros trechos de código também eram vulneráveis resultaria em atrasos desnecessários na correção da vulnerabilidade, o que permite que invasores executem código malicioso quando os usuários fazem nada além de visualizar uma imagem webp com armadilha.

Na segunda-feira, o Google enviou uma nova divulgação (CVE-2023-5129). Este CVE lista corretamente o libwebp como o fornecedor e software afetado. Ele também aumenta a classificação de gravidade da vulnerabilidade, de 8,8 de um total de 10 para 10.

A falta de completude na primeira CVE atribuída pelo Google vai além de ser apenas uma falha acadêmica. Mais de duas semanas após a descoberta da vulnerabilidade, uma série de softwares permanece sem correção. O exemplo mais gritante é o Microsoft Teams.

A descrição da vulnerabilidade na nova submissão do Google fornece consideravelmente mais detalhes. A descrição na submissão anterior era:

Estouro de buffer no heap no WebP no Google Chrome anterior à versão 116.0.5845.187 permitiu que um invasor remoto execute uma gravação de memória fora dos limites por meio de uma página HTML criada. (Gravidade de segurança do Chromium: Crítica)

A nova descrição é:

Com um arquivo WebP lossless especialmente criado, o libwebp pode escrever dados fora dos limites para o heap. A função ReadHuffmanCodes () aloca o buffer HuffmanCode com um tamanho obtido a partir de uma matriz de tamanhos pré-computados: kTableSize. O valor color_cache_bits define qual tamanho usar. A matriz kTableSize leva em consideração apenas tamanhos para pesquisas de tabela de primeiro nível de 8 bits, mas não pesquisas de tabela de segundo nível. O libwebp permite códigos de até 15 bits (MAX_ALLOWED_CODE_LENGTH). Quando o BuildHuffmanTable () tenta preencher as tabelas de segundo nível, ele pode escrever dados fora dos limites. A gravação fora dos limites na matriz de tamanho insuficiente ocorre em ReplicateValue.

Em resumo, a vulnerabilidade no libwebp é grave. Antes de usar aplicativos, os usuários devem garantir que as versões do Electron atualmente utilizada seja v22.3.24, v24.8.3 ou v25.8.1.

Abordar essa vulnerabilidade não será fácil. E isso ressalta a importância crítica de ter um inventário completo e atualizado de todo o software em seu ambiente.

Scroll to Top

Agende uma consulta com nossa equipe