Skip to main content

Vulnerabilidade crítica de segurança CVE-2023-4863 no WebP afeta todo o ecossistema de software

feature insights context

28 de setembro de 2023

0 minutos de leitura

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:

$ snyk container test python:3.11.1

Testing python:3.11.1...
…
✗ Critical severity vulnerability found in libwebp/libwebpdemux2
  Description: Improper Input Validation
  Info: https://security.snyk.io/vuln/SNYK-DEBIAN11-LIBWEBP-5918870
  Introduced through: libwebp/libwebp-dev@0.6.1-2.1, imagemagick@8:6.9.11.60+dfsg-1.3, meta-common-packages@meta
  From: libwebp/libwebp-dev@0.6.1-2.1 > libwebp/libwebpdemux2@0.6.1-2.1
  From: imagemagick@8:6.9.11.60+dfsg-1.3 > imagemagick/imagemagick-6.q16@8:6.9.11.60+dfsg-1.3 > imagemagick/libmagickcore-6.q16-6@8:6.9.11.60+dfsg-1.3 > libwebp/libwebpdemux2@0.6.1-2.1
  From: libwebp/libwebp-dev@0.6.1-2.1 > libwebp/libwebpmux3@0.6.1-2.1
  and 3 more...
  Fixed in: 0.6.1-2.1+deb11u2
…

Tested 1 dependency for known issues, found 1 issue.

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.

$ snyk test --unmanaged

Testing /Users/developer/myapp...

Issues:

 ✗ [Critical] Heap-based Buffer Overflow
   Introduced through: https://github.com|webmproject/libwebp@1.3.1
   URL: https://security.snyk.io/vuln/SNYK-UNMANAGED-WEBMPROJECTLIBWEBP-5918283

Tested 1 dependency for known issues, found 1 issue.

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.

Relatório de detalhes de problemas do Snyk filtrado por CVEs abertas, exibindo 55 problemas por gravidade e uma tabela de vulnerabilidades com a 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.

pontuação de prioridade da Snyk para o problema do libwebp

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.

captura de tela do painel de relatório de insights do Snyk sobre a vulnerabilidade libwebp

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:

captura de tela do gráfico de evidências da Snyk para a vulnerabilidade libwebp

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:

A Snyk recomenda imagens base alternativas para contêineres e permite sugerir a correção automaticamente, abrindo um pull request que atualiza a instrução FROM do Dockerfile

O Snyk Container recomendará correções para a maioria das imagens base oficiais do Docker Hub assim que forem disponibilizadas:

Testing python:3.11.1-bullseye...
…

Base image:        python:3.11.1-bullseye

Tested 427 dependencies for known issues, found 395 issues.

Base Image              Vulnerabilities  Severity
python:3.11.1-bullseye  395              7 critical, 22 high, 71 medium, 295 low

Recommendations for base image upgrade:

Minor upgrades
Base Image                 Vulnerabilities  Severity
python:3.12.0rc3-bullseye  300              1 critical, 2 high, 2 medium, 295 lowpython:3.11.5-bullseye  300              1 critical, 2 high, 2 medium, 295 low

Alternative image types
Base Image                      Vulnerabilities  Severity
python:3.12.0rc2-slim-bullseye  63               0 critical, 0 high, 0 medium, 63 low
python:3.12.0rc2-slim           41               0 critical, 0 high, 1 medium, 40 low
python:3.12.0rc1-slim-bookworm  41               0 critical, 0 high, 1 medium, 40 low
python:3.11.4-bookworm          175              1 critical, 1 high, 3 medium, 170 low

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’

  1. 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.

  2. Identifique as correções de maior prioridade para a vulnerabilidade da libwebp usando a pontuação de prioridade ou o Insights (disponível para clientes do plano Snyk Enterprise).

  3. Aplique as correções atualizando a biblioteca libwebp para 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.

  4. 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.

Leia mais

illustration hero ai
Blog

PHP corrige duas vulnerabilidades críticas de RCE sem autenticação (CVE-2026-109618, CVE-2026-109619): atualize agora

Duas falhas críticas no ciclo de requisições do PHP podem permitir execução remota de código sem autenticação. Atualize para uma versão corrigida ou instale um backport do fornecedor para versões mais antigas.

blog feature ai lilac
Blog

Transforme seu backlog de vulnerabilidades em pull requests com remediação agentiva

O Evo Remediation Agent está em Open Preview e traz a resolução automatizada de dependências para o Evo Agentic AppSec. Agora, as equipes de AppSec podem executar campanhas contínuas de remediação

AI Background min crop
Blog

A IA está acionando todos os riscos que você aceitou: sete insights do painel de segurança de IA sem filtros

A IA está tornando os ataques mais baratos e rápidos, expondo riscos que as organizações já carregam. Quatro líderes de segurança explicam por que a defesa na velocidade das máquinas e a correção mais rápida são essenciais.