osv.dev

Properties of a High Quality OSV Record

Version

1.0.0 (SEMVER)

Purpose

Describe the “good enough” OSV record that will be imported by OSV.dev

Out of scope

This does not discuss the problem of record bit rot over time, after initial successful import. The problem of continuous revalidation and treatment of records that have been successfully imported will be dealt with separately in the companion to this, Managing the Perishability of OSV Records.

Deferred to a future iteration: validating the existence of vulnerable functions in the ecosystem_specific field, if supplied.

Audience

  1. OSV record producers
  2. Downstream OSV.dev record consumers

Rationale

OSV.dev seeks to be a comprehensive, accurate and timely database of known vulnerabilities that is highly automation friendly. In order to meet this accuracy goal, a quality bar needs to be both defined and sustainably enforced.

Properties of a High Quality OSV Record

Valid

As a prerequisite, it is assumed that a record passes JSON Schema validation for the version of the OSV Schema it declares itself to comply with in the schema_version field, or 1.0.0 if it does not. It is also assumed that the vulnerability discussed in the OSV record is valid and affects the software described.

Precise

A high quality OSV record allows a consumer of that record to be able to answer the following questions in an automated way, at scale:

The definition of “impact” will vary depending on how fine-grained the information available is (i.e. package-level or symbol-level for software library packages). Package-level precision is the minimum standard.

Identifiable

Examples

Appendix A: OSV Schema validation

(As at version 1.6.3, generated by Gemini from the OSV JSON schema)

Top-Level Information:

Optional, but validated when present:

Additional Validation Rules: