Como verificar se uma versão tem vulnerabilidades conhecidas?

Todos os ambientes de execução, servidores e bibliotecas dos quais você depende recebem correções de segurança ao longo do tempo, e a versão que você usa pode estar entre as afetadas por um alerta de segurança publicado. Os alertas estão espalhados por muitos bancos de dados: o do GitHub, os das equipes de segurança do Python e do Go, o RustSec, o da Bitnami e outros. O OSV.dev, projeto de vulnerabilidades de código aberto mantido pelo Google, reúne esses alertas em um único formato e informa quais deles afetam uma versão específica.

Descrição da ferramenta

Selecione o ecossistema, informe o nome e a versão exata e clique em Verificar versão. Para um ambiente de execução ou pacote popular, como Node.js, PHP, PostgreSQL, lodash ou Django, escolha-o em Seleção rápida; os campos Ecossistema e Nome serão preenchidos automaticamente. Você verá todas as vulnerabilidades conhecidas que afetam essa versão, ordenadas da mais grave para a menos grave, com:

  • Seu ID, com link para a página correspondente em osv.dev, e o ID do CVE, quando houver
  • A gravidade atribuída pelo alerta: Crítica, Alta, Média ou Baixa
  • A versão em que a vulnerabilidade foi corrigida: a primeira versão corrigida posterior à sua, conforme informado no alerta
  • Um breve resumo

Quando vários bancos de dados descrevem o mesmo problema, como um alerta do GitHub e sua cópia no banco de dados do Python, eles são exibidos como uma única vulnerabilidade.

A verificação é executada em nosso servidor, que consulta a API pública do OSV.dev. Somente o ecossistema, o nome e a versão são enviados.

Assistentes de IA conectados ao servidor MCP do Conjunto Rápido de Ferramentas podem executar a mesma verificação usando vulnerable_version_checker.

Ecossistemas compatíveis

Ecossistema O que abrange Exemplos de nomes
Ambientes de execução e servidores, Bitnami Ambientes de execução, servidores web e de banco de dados, aplicativos node (Node.js), php, python, nginx, mariadb
npm Pacotes JavaScript lodash, express
PyPI Pacotes Python django, requests
Packagist Pacotes PHP instalados com Composer laravel/framework, symfony/http-kernel
Maven Pacotes Java, no formato grupo:artefato org.apache.logging.log4j:log4j-core
NuGet Pacotes .NET Newtonsoft.Json
Go Módulos Go, identificados pelo caminho do módulo github.com/gin-gonic/gin
crates.io Crates Rust tokio
RubyGems Gems Ruby actionpack, nokogiri
Pub Pacotes Dart e Flutter http
Hex Pacotes Erlang e Elixir phoenix, plug
CRAN Pacotes R commonmark

Para ambientes de execução e servidores, são usados os nomes da Bitnami: node para Node.js (nodejs também funciona), postgresql e apache para o Apache HTTP Server.

Limitações

  • A versão deve ser escrita exatamente como no ecossistema, por exemplo, 18.0.0 ou 4.17.15. Um nome escrito incorretamente ou uma versão inexistente não retornará resultados, assim como uma versão sem vulnerabilidades conhecidas.
  • São considerados apenas os alertas publicados. Uma versão sem alertas listados ainda pode ter falhas que ninguém relatou.
  • Alguns alertas não têm classificação de gravidade; eles são exibidos como Não classificada.
  • A versão em que a vulnerabilidade foi corrigida é obtida dos intervalos de versões indicados no alerta. Uma versão mais recente pode ter vulnerabilidades próprias, então verifique também a versão para a qual você vai atualizar.