Comment vérifier si une version présente des vulnérabilités connues ?

Chaque environnement d’exécution, serveur et bibliothèque dont vous dépendez reçoit des correctifs de sécurité au fil du temps, et la version que vous utilisez peut être mentionnée comme vulnérable dans un avis de sécurité publié. Ces avis sont répartis dans de nombreuses bases de données : celles de GitHub, des équipes de sécurité Python et Go, RustSec, Bitnami et d’autres. OSV.dev, le projet Open Source Vulnerabilities géré par Google, les rassemble dans un format unique et indique, pour une version précise, quels avis la concernent.

Description de l’outil

Choisissez l’écosystème, saisissez le nom et la version exacte, puis cliquez sur Vérifier la version. Pour un environnement d’exécution ou un package courant, comme Node.js, PHP, PostgreSQL, lodash ou Django, vous pouvez plutôt le choisir dans Sélection rapide, qui renseigne l’écosystème et le nom pour vous. Vous obtenez toutes les vulnérabilités connues qui concernent cette version, des plus graves aux moins graves, avec :

  • Son ID, lié à sa page sur osv.dev, et son ID CVE, le cas échéant
  • La gravité attribuée par l’avis : critique, élevée, moyenne ou faible
  • La version dans laquelle le problème est corrigé : la version corrigée la plus basse supérieure à la vôtre, selon l’avis
  • Un bref résumé

Lorsque plusieurs bases de données décrivent le même problème, par exemple un avis GitHub et sa copie dans la base de données Python, ils sont affichés comme une seule vulnérabilité.

La vérification s’effectue sur notre serveur, qui interroge l’API publique d’OSV.dev. Seuls l’écosystème, le nom et la version sont envoyés.

Les assistants IA connectés au serveur MCP Rapid Tool Set peuvent effectuer la même vérification avec vulnerable_version_checker.

Écosystèmes pris en charge

Écosystème Contenu couvert Exemples de noms
Environnements d’exécution et serveurs, Bitnami Environnements d’exécution, serveurs web et de bases de données, applications node (Node.js), php, python, nginx, mariadb
npm Packages JavaScript lodash, express
PyPI Packages Python django, requests
Packagist Packages PHP installés avec Composer laravel/framework, symfony/http-kernel
Maven Packages Java, au format groupe:artefact org.apache.logging.log4j:log4j-core
NuGet Packages .NET Newtonsoft.Json
Go Modules Go, selon leur chemin de module github.com/gin-gonic/gin
crates.io Crates Rust tokio
RubyGems Gems Ruby actionpack, nokogiri
Pub Packages Dart et Flutter http
Hex Packages Erlang et Elixir phoenix, plug
CRAN Packages R commonmark

Pour les environnements d’exécution et les serveurs, les noms de Bitnami sont utilisés : node pour Node.js (nodejs fonctionne aussi), postgresql, apache pour le serveur HTTP Apache.

Limitations

  • La version doit être écrite exactement comme dans l’écosystème, par exemple 18.0.0 ou 4.17.15. Une faute dans le nom ou une version inexistante ne renvoie aucun résultat, comme une version sans vulnérabilité connue.
  • Seuls les avis publiés sont répertoriés. Une version pour laquelle aucun avis n’est répertorié peut tout de même présenter des failles que personne n’a encore signalées.
  • Certains avis n’indiquent aucun niveau de gravité ; ils sont affichés comme non évalués.
  • La version corrigée est indiquée à partir des plages de versions de l’avis. Une version plus récente peut présenter ses propres vulnérabilités ; vérifiez donc également la version vers laquelle vous effectuez la mise à niveau.