Voltar às atualizações
New releaseAug 7, 2026

osv-scanner v2.5.0

Scanner de vulnerabilidades escrito em Go que usa os dados fornecidos por https://osv.dev

Compartilhar

OpenSSF Scorecard Checks codecov SLSA 3 GitHub Release

Use o OSV-Scanner para encontrar vulnerabilidades existentes que afetam as dependências do seu projeto. O OSV-Scanner fornece um frontend oficialmente suportado para o banco de dados OSV e uma interface CLI para o OSV-Scalibr, que conecta a lista de dependências de um projeto às vulnerabilidades que as afetam.

O OSV-Scanner suporta uma ampla variedade de tipos de projeto, gerenciadores de pacotes e recursos, incluindo, mas não se limitando a:

  • Linguagens: C/C++, Dart, Elixir, Go, Java, Javascript, PHP, Python, R, Ruby, Rust.
  • Gerenciadores de pacotes: npm, pip, yarn, maven, go modules, cargo, gem, composer, nuget e outros.
  • Sistemas operacionais: Detecta vulnerabilidades em pacotes de SO em sistemas Linux.
  • Contêineres: Examina imagens de contêiner em busca de vulnerabilidades em suas imagens base e pacotes incluídos.
  • Remediação guiada: Fornece recomendações para atualizações de versão de pacotes com base em critérios como profundidade de dependência, severidade mínima, estratégia de correção e retorno sobre o investimento.

O OSV-Scanner usa a biblioteca extensível OSV-Scalibr internamente para fornecer essa funcionalidade. Se uma linguagem ou gerenciador de pacotes não for suportado atualmente, abra uma solicitação de recurso.

Banco de dados subjacente

O banco de dados subjacente, OSV.dev, tem vários benefícios em comparação com bancos de dados de avisos e scanners de código fechado:

  • Cobrindo a maioria dos ecossistemas de linguagens de código aberto e sistemas operacionais (incluindo Git), é abrangente.
  • Cada aviso vem de uma fonte aberta e autoritativa (ex.: GitHub Security Advisories, RustSec Advisory Database, avisos de segurança do Ubuntu)
  • Qualquer pessoa pode sugerir melhorias aos avisos, resultando em um banco de dados de altíssima qualidade.
  • O formato OSV armazena de forma inequívoca informações sobre versões afetadas em um formato legível por máquina que mapeia com precisão a lista de pacotes de um desenvolvedor.

Tudo isso resulta em notificações de vulnerabilidade precisas e acionáveis, o que reduz o tempo necessário para resolvê-las. Confira o OSV.dev para mais detalhes!

Instalação básica

Para instalar o OSV-Scanner, consulte a seção de instalação da nossa documentação. As versões do OSV-Scanner podem ser encontradas na página de releases do repositório do GitHub. O método recomendado é baixar um binário pré-compilado para sua plataforma. Como alternativa, você pode usar go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest para compilar a partir do código-fonte.

Principais recursos

Para mais informações, leia nossa documentação detalhada para aprender como usar o OSV-Scanner. Para informações detalhadas sobre cada recurso, clique nos títulos deste README.

Observação: estas são as instruções para a versão beta mais recente do OSV-Scanner V2. Se você estiver usando a V1, confira o README e a documentação da V1.

Varredura de um diretório de código-fonte

$ osv-scanner scan source -r /path/to/your/dir

Este comando fará uma varredura recursiva no diretório especificado em busca de qualquer arquivo de pacote suportado, como package.json, go.mod, pom.xml, etc., e exibirá quaisquer vulnerabilidades encontradas.

O OSV-Scanner tem a opção de usar análise de chamadas para determinar se uma função vulnerável está sendo realmente usada no projeto, resultando em menos falsos positivos e alertas acionáveis.

O OSV-Scanner também pode detectar código C/C++ vendorizado para varredura de vulnerabilidades. Veja aqui para detalhes.

Lockfiles suportados

O OSV-Scanner suporta mais de 11 ecossistemas de linguagem e mais de 19 tipos de lockfile. Para verificar se seu ecossistema é coberto, consulte nossa documentação detalhada.

Varredura de contêineres

O OSV-Scanner também oferece suporte a varredura abrangente e com ciência de camadas para imagens de contêiner, a fim de detectar vulnerabilidades nos seguintes pacotes de sistema operacional e dependências específicas de linguagem.

Suporte a DistrosSuporte a Artefatos de Linguagem
Alpine OSGo
DebianJava
UbuntuNode
Python

Consulte a documentação completa para detalhes sobre o suporte.

Uso:

$ osv-scanner scan image my-image-name:tag

screencast da saída HTML da varredura de contêiner

Varredura de licenças

Verifique as licenças das suas dependências usando dados do deps.dev. Para um resumo:

osv-scanner --licenses path/to/repository

Para verificar contra uma lista de licenças permitidas (formato SPDX):

osv-scanner --licenses="MIT,Apache-2.0" path/to/directory

Varredura offline

Escanear seu projeto contra um banco de dados OSV local. Nenhuma conexão de rede é necessária após o download inicial do banco de dados. O banco de dados também pode ser baixado manualmente.

osv-scanner --offline --download-offline-databases ./path/to/your/dir

Remediação guiada (Experimental)

[!WARNING] A remediação guiada (o comando fix) pode ser arriscada quando executada em projetos não confiáveis. Ela pode fazer com que o gerenciador de pacotes execute scripts ou siga registros externos especificados no projeto. Certifique-se de confiar no código-fonte e nos artefatos antes de prosseguir.

O OSV-Scanner oferece remediação guiada, um recurso que sugere atualizações de versão de pacotes com base em critérios como profundidade de dependência, severidade mínima, estratégia de correção e retorno sobre o investimento. Atualmente, oferecemos suporte à remediação de vulnerabilidades nos seguintes arquivos:

EcossistemaFormato do Arquivo (Tipo)Estratégias de Remediação Suportadas
npmpackage-lock.json (lockfile)in-place
npmpackage.json (manifest)relock
Mavenpom.xml (manifest)override

Isso está disponível como um comando CLI headless, bem como um modo interativo.

Exemplo (para npm)

$ osv-scanner fix \
    --max-depth=3 \
    --min-severity=5 \
    --ignore-dev  \
    --strategy=in-place \
    -L path/to/package-lock.json

Modo interativo (para npm)

$ osv-scanner fix \
    -M path/to/package.json \
    -L path/to/package-lock.json
Captura de tela da tela de resultados do relock interativo com alguns patches de relaxamento selecionados

Fontes de dados e privacidade

O OSV-Scanner se comunica com os seguintes serviços externos durante a operação:

OSV.dev API

A principal fonte de dados para informações de vulnerabilidade. O OSV-Scanner consulta esta API para verificar pacotes em busca de vulnerabilidades conhecidas e identificar dependências C/C++ vendorizadas. Os dados enviados incluem nomes de pacotes, versões, ecossistemas e hashes de arquivos. Use o modo --offline para desativar solicitações de rede e escanear contra um banco de dados local.

deps.dev API

Usada para informações complementares de pacotes:

  • Resolução de dependências: Resolve grafos de dependência para varredura e remediação de vulnerabilidades
  • Varredura de imagens de contêiner: Consulta metadados de imagens de contêiner para detecção de vulnerabilidades
  • Varredura de licenças (flag --licenses): Recupera informações de licença dos pacotes
  • Deprecação de pacotes: Verifica se os pacotes estão obsoletos

Os dados enviados incluem nomes de pacotes, versões e ecossistemas. Nenhum código-fonte é transmitido.

Registros de pacotes

Ao usar o registro nativo para resolução de dependências (em vez de deps.dev), o OSV-Scanner pode consultar:

RegistroURLUsado Para
Maven Centralrepo.maven.apache.org/maven2Metadados de pacotes Maven e arquivos POM
npm Registryregistry.npmjs.orgMetadados de pacotes npm
PyPIpypi.orgMetadados de pacotes Python

Contribua

Relatar problemas

Se você tiver o que parece ser um bug, use o sistema de rastreamento de issues do GitHub. Antes de abrir uma issue, pesquise as issues existentes para ver se a sua já está coberta.

Contribuindo com código para osv-scanner

Consulte CONTRIBUTING.md para obter documentação sobre como contribuir com código.

Histórico de estrelas

Star History Chart

Categorias