Retour aux mises à jour
New releaseAug 7, 2026

osv-scanner v2.5.0

Scanner de vulnérabilités écrit en Go qui utilise les données fournies par https://osv.dev

Partager

OpenSSF Scorecard Checks codecov SLSA 3 GitHub Release

Utilisez OSV-Scanner pour détecter les vulnérabilités existantes affectant les dépendances de votre projet. OSV-Scanner fournit une interface officiellement prise en charge pour la base de données OSV et une interface CLI pour OSV-Scalibr, qui relie la liste des dépendances d'un projet aux vulnérabilités qui les affectent.

OSV-Scanner prend en charge une large gamme de types de projets, de gestionnaires de paquets et de fonctionnalités, notamment :

  • Langages : C/C++, Dart, Elixir, Go, Java, Javascript, PHP, Python, R, Ruby, Rust.
  • Gestionnaires de paquets : npm, pip, yarn, maven, go modules, cargo, gem, composer, nuget et autres.
  • Systèmes d'exploitation : Détecte les vulnérabilités dans les paquets du système d'exploitation sur les systèmes Linux.
  • Conteneurs : Analyse les images de conteneurs à la recherche de vulnérabilités dans leurs images de base et les paquets inclus.
  • Remédiation guidée : Fournit des recommandations de mise à niveau des versions de paquets basées sur des critères tels que la profondeur des dépendances, la sévérité minimale, la stratégie de correction et le retour sur investissement.

OSV-Scanner utilise la bibliothèque extensible OSV-Scalibr en interne pour fournir cette fonctionnalité. Si un langage ou un gestionnaire de paquets n'est pas actuellement pris en charge, veuillez soumettre une demande de fonctionnalité.

Base de données sous-jacente

La base de données sous-jacente, OSV.dev, présente plusieurs avantages par rapport aux bases de données d'avis de sécurité et aux scanners propriétaires :

  • Couvrant la plupart des écosystèmes open source de langages et de systèmes d'exploitation (y compris Git), elle est exhaustive.
  • Chaque avis provient d'une source ouverte et faisant autorité (par exemple GitHub Security Advisories, RustSec Advisory Database, Ubuntu security notices)
  • Tout le monde peut suggérer des améliorations aux avis, ce qui donne une base de données de très haute qualité.
  • Le format OSV stocke sans ambiguïté les informations relatives aux versions affectées dans un format lisible par machine qui correspond précisément à la liste des paquets d'un développeur.

Tout cela aboutit à des notifications de vulnérabilités précises et exploitables, ce qui réduit le temps nécessaire pour les résoudre. Consultez OSV.dev pour plus de détails !

Installation de base

Pour installer OSV-Scanner, veuillez vous référer à la section installation de notre documentation. Les versions d'OSV-Scanner sont disponibles sur la page des versions du dépôt GitHub. La méthode recommandée consiste à télécharger un binaire précompilé pour votre plateforme. Vous pouvez également utiliser go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest pour le compiler à partir des sources.

Fonctionnalités clés

Pour plus d'informations, veuillez lire notre documentation détaillée pour apprendre à utiliser OSV-Scanner. Pour des informations détaillées sur chaque fonctionnalité, cliquez sur leurs titres dans ce README.

Veuillez noter : il s'agit des instructions pour la dernière version bêta d'OSV-Scanner V2. Si vous utilisez V1, consultez plutôt le README et la documentation de la V1.

Analyse d'un répertoire source

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

Cette commande analysera récursivement le répertoire spécifié à la recherche de tous les fichiers de paquets pris en charge, tels que package.json, go.mod, pom.xml, etc., et affichera toutes les vulnérabilités découvertes.

OSV-Scanner offre la possibilité d'utiliser l'analyse des appels pour déterminer si une fonction vulnérable est réellement utilisée dans le projet, ce qui se traduit par moins de faux positifs et des alertes exploitables.

OSV-Scanner peut également détecter le code C/C++ vendorisé pour l'analyse des vulnérabilités. Voir ici pour plus de détails.

Fichiers de verrouillage pris en charge

OSV-Scanner prend en charge plus de 11 écosystèmes de langages et plus de 19 types de fichiers de verrouillage. Pour vérifier si votre écosystème est couvert, consultez notre documentation détaillée.

Analyse de conteneurs

OSV-Scanner prend également en charge une analyse complète et tenant compte des couches pour les images de conteneurs, afin de détecter les vulnérabilités dans les paquets des systèmes d'exploitation et les dépendances spécifiques aux langages suivants.

Distributions prises en chargeArtefacts de langage pris en charge
Alpine OSGo
DebianJava
UbuntuNode
Python

Consultez la documentation complète pour plus de détails sur la prise en charge.

Utilisation :

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

capture vidéo de la sortie HTML de l'analyse de conteneurs

Analyse des licences

Vérifiez les licences de vos dépendances à l'aide des données de deps.dev. Pour un résumé :

osv-scanner --licenses path/to/repository

Pour vérifier par rapport à une liste de licences autorisées (format SPDX) :

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

Analyse hors ligne

Analysez votre projet par rapport à une base de données OSV locale. Aucune connexion réseau n'est requise après le téléchargement initial de la base de données. La base de données peut également être téléchargée manuellement.

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

Remédiation guidée (Expérimental)

[!WARNING] La remédiation guidée (la commande fix) peut être risquée lorsqu'elle est exécutée sur des projets non fiables. Elle peut amener le gestionnaire de paquets à exécuter des scripts ou à suivre des registres externes spécifiés dans le projet. Veuillez vous assurer que vous faites confiance au code source et aux artefacts avant de continuer.

OSV-Scanner fournit une remédiation guidée, une fonctionnalité qui suggère des mises à niveau de versions de paquets en fonction de critères tels que la profondeur des dépendances, la sévérité minimale, la stratégie de correction et le retour sur investissement. Nous prenons actuellement en charge la remédiation des vulnérabilités dans les fichiers suivants :

ÉcosystèmeFormat de fichier (Type)Stratégies de remédiation prises en charge
npmpackage-lock.json (fichier de verrouillage)in-place
npmpackage.json (manifeste)relock
Mavenpom.xml (manifeste)override

Cette fonctionnalité est disponible sous forme de commande CLI sans interface utilisateur (headless), ainsi qu'en mode interactif.

Exemple (pour npm)

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

Mode interactif (pour npm)

$ osv-scanner fix \
    -M path/to/package.json \
    -L path/to/package-lock.json
Capture d'écran de l'écran de résultats relock interactif avec certains correctifs de relaxation sélectionnés

Sources de données et confidentialité

OSV-Scanner communique avec les services externes suivants pendant son fonctionnement :

OSV.dev API

La principale source de données pour les informations sur les vulnérabilités. OSV-Scanner interroge cette API pour vérifier les paquets à la recherche de vulnérabilités connues et identifier les dépendances C/C++ vendorisées. Les données envoyées comprennent les noms de paquets, les versions, les écosystèmes et les empreintes de fichiers. Utilisez le mode --offline pour désactiver les requêtes réseau et analyser plutôt par rapport à une base de données locale.

deps.dev API

Utilisée pour des informations complémentaires sur les paquets :

  • Résolution des dépendances : Résout les graphes de dépendances pour l'analyse des vulnérabilités et la remédiation
  • Analyse des images de conteneurs : Interroge les métadonnées des images de conteneurs pour la détection des vulnérabilités
  • Analyse des licences (option --licenses) : Récupère les informations de licence des paquets
  • Obsolescence des paquets : Vérifie si les paquets sont obsolètes

Les données envoyées comprennent les noms de paquets, les versions et les écosystèmes. Aucun code source n'est transmis.

Registres de paquets

Lorsqu'il utilise le registre natif pour la résolution des dépendances (au lieu de deps.dev), OSV-Scanner peut interroger :

RegistreURLUtilisé pour
Maven Centralrepo.maven.apache.org/maven2Métadonnées des paquets Maven et fichiers POM
npm Registryregistry.npmjs.orgMétadonnées des paquets npm
PyPIpypi.orgMétadonnées des paquets Python

Contribuer

Signaler des problèmes

Si vous pensez avoir trouvé un bug, veuillez utiliser le système de suivi des problèmes GitHub. Avant de créer un ticket, veuillez rechercher dans les tickets existants pour vérifier si votre problème est déjà couvert.

Contribuer au code de osv-scanner

Consultez CONTRIBUTING.md pour la documentation sur la façon de contribuer au code.

Historique des étoiles

Star History Chart

Catégories