Vulnerabilidade crítica de segurança CVE-2023-4863 no WebP afeta todo o ecossistema de software
28 de setembro de 2023
0 minutos de leituraLinks rápidos
Neste mês, a Apple Security Engineering and Architecture (SEA) e o The Citizen Lab da Munk School, da Universidade de Toronto, divulgaram duas vulnerabilidades Critical relacionadas a imagens WebP maliciosamente manipuladas, que poderiam ser usadas para explorar o navegador Chrome e a biblioteca webmproject/libwebp, do Google.
Em 27 de setembro de 2023, os CVEs conhecidos que rastreiam ativamente essa vulnerabilidade da libwebp incluem:
CVE-2023-4863: divulgado em 11 de setembro de 2023, com pontuação CVSS de 9,6. Pontuação EPSS de 31,86% (percentil 97*). Observação: a pontuação original desse CVE era 8,8 ("Alta"), antes da divulgação de mais detalhes.
CVE-2023-5129: divulgado em 25 de setembro de 2023, com pontuação CVSS de 10 (a máxima possível). Foi rejeitado posteriormente, em 27 de setembro de 2023, pelo Google, a Autoridade de Numeração de CVE responsável, por ser uma duplicata.
A vulnerabilidade identificada na biblioteca WebP libwebp afeta muito mais do que apenas navegadores e aplicativos baseados no Chrome (por exemplo, 1Password para macOS). Isso é especialmente relevante porque a biblioteca libwebp é usada por muitos sistemas operacionais e frameworks de aplicativos populares para renderizar imagens .webp, incluindo o popular framework Electron. Portanto, a vulnerabilidade da libwebp também afeta softwares de uso geral, como o Pillow, e outros aplicativos, como ffmpeg e Gimp. Vale lembrar que alguns desses aplicativos e componentes de software são incluídos em imagens de contêiner.
As versões da webmproject/libwebp da 0.5.0 até a 1.3.1, inclusive, são afetadas. Para corrigir a vulnerabilidade, verifique se o sistema operacional e os projetos de software exigem pelo menos a versão 1.3.2. No entanto, vale lembrar que a libwebp costuma ser usada indiretamente por outros softwares que a incluem, ampliando o impacto dessa vulnerabilidade em todo o ecossistema de software.
Em resposta ao CVE inicial, o Google e outros fornecedores lançaram rapidamente correções para os principais navegadores.
O Snyk está monitorando essa vulnerabilidade e atualizará este artigo quando surgirem novas informações. Também atualizaremos o Snyk Vulnerability Database com os dados mais recentes. Continue executando suas verificações regularmente para manter seus projetos seguros. Essa vulnerabilidade da libwebp mostra mais uma vez como é essencial verificar se há vulnerabilidades nos seus aplicativos e imagens de contêiner — e fazer isso com frequência para manter sua cadeia de suprimentos de software segura.
Volte a esta página ou siga-nos no X (@snyksec) para acompanhar as últimas notícias e novidades. Continue lendo abaixo para saber mais.
O EPSS apresenta diretamente os resultados do modelo EPSS. Essas pontuações dão uma visão geral da ameaça de exploração no mundo real. O percentil mede a probabilidade indicada pelo EPSS em relação a todas as pontuações EPSS conhecidas. Neste caso, a probabilidade de exploração da CVE-2023-4863 é maior do que a de 97% de todas as vulnerabilidades avaliadas — ou seja, é mais provável que um agente mal-intencionado explore essa vulnerabilidade do que a maioria das outras. Esses dados são atualizados diariamente com base na versão mais recente disponível do modelo EPSS. Consulte a documentação do EPSS para saber mais.
O que usa a libwebp?
É provável que a vulnerabilidade esteja disseminada nos ecossistemas de desenvolvimento, já que linguagens de programação de alto nível costumam usar a biblioteca subjacente libwebp. Por exemplo, a engine de jogos GoDot, usada para criar jogos 2D e 3D, depende da biblioteca libwebp, assim como o utilitário FFmpeg, amplamente utilizado, que também usa a biblioteca libwebp.
Especialistas em segurança ainda estão determinando toda a extensão do uso dessa biblioteca nos aplicativos, pois a vulnerabilidade provavelmente afeta componentes de software que usam codecs de imagem .webp e renderizam seu conteúdo, como navegadores e ferramentas de design.
Entenda a vulnerabilidade da libwebp
A biblioteca libwebp processa imagens no formato .webp. Criada pelo Google há mais de uma década, ela é usada na maioria dos aplicativos que renderizam imagens .webp. A vulnerabilidade pode ser explorada por meio de um arquivo .webp sem perdas criado maliciosamente, que faz a biblioteca vulnerável transbordar.
Os ataques que exploram essa vulnerabilidade podem variar de negação de serviço (DoS) até possível execução remota de código (RCE). Por exemplo, ataques relacionados, como o exploit de dia zero BLASTPASS (Apple CVE-2023-41064,CVE-2023-41061), mostraram que imagens .webp maliciosas enviadas pelo iMessage poderiam comprometer o dispositivo iOS da vítima sem qualquer interação por parte dela.
Acesse a página do Snyk Vulnerability Database para saber mais e conferir links para análises detalhadas e exemplos de prova de conceito.
Como detectar a vulnerabilidade da libwebp com o Snyk
Há várias maneiras de detectar a vulnerabilidade da libwebp com o Snyk. Com a Snyk CLI, você pode testar seus projetos localmente, importar projetos para o Snyk usando nossas integrações com SCM ou usar os relatórios do Snyk para pesquisar rapidamente por libwebp em todos os projetos que você já importou para o Snyk.
Teste seus projetos com a Snyk CLI
O Snyk Container pode alertar você sobre pacotes do sistema operacional que dependem de versões vulneráveis da libwebp. O Snyk pode monitorar seus contêineres ou arquivos Docker pela interface web, ou você pode iniciar uma verificação manualmente com o comando da CLI: snyk container test.
O exemplo a seguir mostra a Snyk CLI verificando a imagem de contêiner Docker python:3.11.1 para saber se ela está vulnerável à falha de segurança de dia zero na libwebp:
Teste projetos C++ com a CLI
O Snyk Open Source pode alertar você sobre uma versão vulnerável da libwebp nas dependências do seu aplicativo C/C++. O Snyk pode monitorar seus aplicativos pela interface web, ou você pode iniciar manualmente uma verificação das dependências de código aberto com o comando da CLI: snyk test --unmanaged.
Consulte a Documentação do usuário do Snyk para saber mais sobre os recursos de verificação de C/C++.
Teste seus projetos com a integração de SCM
Ao importar seu projeto para o Snyk usando uma das integrações de SCM compatíveis (GitHub, Bitbucket, GitLab, Azure Repos), uma verificação será iniciada automaticamente. Assim, você poderá usar a interface do Snyk para identificar, priorizar e corrigir a vulnerabilidade da libwebp nos seus projetos.
Use os relatórios do Snyk para detectar a vulnerabilidade da libwebp nos seus projetos
Clientes do Snyk com acesso aos relatórios do Snyk (plano Enterprise) podem identificar rapidamente a libwebp nos projetos que já importaram e monitoram com o Snyk. No relatório Detalhes dos problemas, filtre pelos CVEs: CVE-2023-5129 AND CVE-2023-4863.

Copie a URL para compartilhar essa visualização com outras pessoas da equipe ou exporte-a em PDF para que mais pessoas da empresa tenham acesso.
Se você encontrar o problema, poderá ver exatamente onde ele está sendo usado. Em seguida, clique no projeto para ver mais informações sobre o problema e as instruções de correção.
Priorize as correções
É provável que você encontre vários problemas relacionados à libwebp nos seus projetos, o que pode dificultar a decisão de por onde começar. O Snyk oferece vários recursos para ajudar a priorizar as correções.
Use a pontuação de prioridade do Snyk
A pontuação de prioridade do Snyk calcula diversos fatores de risco para ajudar você a identificar rapidamente quais problemas devem ser resolvidos primeiro. Ela considera sinais como EPSS, maturidade do exploit, CVSS, tendências nas redes sociais e outros fatores. Com ela, você pode analisar rapidamente a lista de vulnerabilidades e priorizar as correções. No caso da libwebp, é natural que a pontuação seja alta na maioria dos casos.
A pontuação é exibida para cada problema relacionado à libwebp na página Projetos e também fica disponível nos relatórios do Snyk.

Use o Insights no Snyk
Se você é cliente do Snyk e usa o Insights, pode aproveitar o contexto adicional dos seus aplicativos para entender quais problemas representam mais risco.
O Insights agrega e correlaciona dados de toda a plataforma Snyk para criar uma visão 360° do seu aplicativo, incluindo todos os componentes usados para criá-lo e o contexto de como ele é implantado em produção. Essa visão ajuda você a avaliar melhor o risco de um problema relacionado à libwebp, respondendo a perguntas como: o problema afeta seu ambiente? O código que o introduziu está implantado?
Abra a aba Insights e use os filtros de CVE e o funil no topo da página para encontrar rapidamente os problemas mais arriscados relacionados à libwebp nos seus projetos.
No exemplo abaixo, dois problemas relacionados à libwebp são sinalizados como aplicáveis ao sistema operacional em uso. Eles estão associados a um contêiner implantado em produção e com um caminho configurado para a internet, o que representa mais risco.

Para entender exatamente como o risco foi introduzido e como ele se relaciona ao aplicativo, abra o gráfico de evidências para ver mais contexto:

Para saber mais sobre o Insights, como configurá-lo e usá-lo, consulte nossa documentação online.
Como corrigir a vulnerabilidade da libwebp
Corrija a libwebp nas imagens base de contêiner
Atualize sua imagem base para uma tag mais recente que já contenha a correção da vulnerabilidade. Para os ecossistemas compatíveis, você pode iniciar diretamente no Snyk pull requests com as correções necessárias.
Por exemplo, o Snyk recomenda imagens base de contêiner alternativas pela interface ou pela CLI. Ao importar seu repositório de código-fonte por meio de um SCM como o GitHub, você também pode automatizar a correção da imagem de contêiner, criando um pull request que atualiza a entrada FROM do Dockerfile:

O Snyk Container recomendará correções para a maioria das imagens base oficiais do Docker Hub assim que forem disponibilizadas:
Corrija a libwebp em projetos C e C++
Atualize todas as dependências webmproject/libwebp do seu projeto para a versão 1.3.2 ou mais recente e recompile o aplicativo.
Próximas etapas para responder à vulnerabilidade da ‘libwebp’
Teste seus projetos com o Snyk usando os métodos apresentados neste artigo. Para começar, crie uma conta gratuita no Snyk e depois importe e verifique todos os projetos potencialmente afetados usando o assistente de importação.
Identifique as correções de maior prioridade para a vulnerabilidade da
libwebpusando a pontuação de prioridade ou o Insights (disponível para clientes do plano Snyk Enterprise).Aplique as correções atualizando a biblioteca
libwebppara a versão 1.3.2 ou mais recente nas dependências de código aberto dos seus projetos ou nas imagens de contêiner.Continue acompanhando o desenrolar dessa situação, siga-nos no X (@snyksec) e volte ao Blog do Snyk para conferir as novidades. As equipes de segurança do Snyk atualizarão nossos recursos regularmente com as informações mais recentes.
