The Go Vulnerability Database

This repository is a prototype of the Go Vulnerability Database.
Read the Draft Design.

Neither the code, nor the data, nor the existence of this repository is to be
considered stable until an approved proposal.

Important: vulnerability entries in this repository are represented in an
internal, unstable format that can and will change without notice.

Consuming database entries

Database clients must not rely on the contents of this repository. Instead, they
can access the tree of JSON entries rooted at

An index.json file maps module paths to last modified timestamps

For each module, a NAME.json file contains a list of vulnerability entries

Note that this path and format are provisional and likely to change until an
approved proposal.


Some of these packages can probably be coalesced, but for now are easier to work
on in a more segmented fashion.

  • osv provides a package for generating OSV-style JSON vulnerability entries
    from a report.Report
  • client contains a client for accessing HTTP/fs based vulnerability
    databases, as well as a minimal caching implementation
  • cmd/dbdiff provides a tool for comparing two different versions of the
    vulnerability database
  • cmd/gendb provides a tool for converting YAML reports into JSON database
  • cmd/linter provides a tool for linting individual reports
  • cmd/report2cve provides a tool for converting YAML reports into JSON CVEs


Unless otherwise noted, the Go source files are distributed under
the BSD-style license found in the LICENSE file.

Database entries available at are
distributed under the terms of the
CC-BY 4.0 license.


View Github