google / google/osv.dev

Easier way to connect between OSV advisories and other metadata (e.g. CWEs, CVSS, EPSS, CISA KEV)

Open
#3,245 13 comments 4 reactions 0 assignees View on GitHub
backlog enhancement
Dominant language
Go
Stars
2.9k
Forks
369
Avg merge
1d 17h
Merged PRs (30d)
149

Description

CWEs, CVSS, EPSS, CISA KEV are interesting metadata that users of the OSV.dev feed might be interested in.

Today, OSV.dev aggregates feeds from different sources out of our control, which may or may not include these metadata. Some of this metadata may not make sense to include at all for a specific home database. e.g. EPSS, which comes from a single authoritative entity [first.org] rather than the home database (e.g. Debian Security Advisories).

We should explore an easier way for users of OSV.dev to aggregate and collect this metadata for advisories. For example, most of our advisories are linked to a CVE ID, from which we could:

- Consult the NVD / CVE List for CVSS, CWE
- Consult the first.org EPSS data
- Consult the CISA KEV

Some possibilities (that are not mutually exclusive):

# Via a new API
`https://api.osv.dev/v1/external_metadata/` which would should work using any ID alias (e.g. GHSA, DSA), and return something lke:

```
{
"aliases": ["CVE-1234", "GHSA-1234", "DSA-1234"],
"cvss": [
{"source": "nvd.nist.gov", "value": "..."}
],
"cwe": [
{"source": "nvd.nist.gov", "value": "..."}
],
"epss": [
{"source": "first.org", "value", "..."}
],
"kev": [
{"source": "cisa.gov", "value": true/false}
]
}
```

# Via data dumps

We could provide this same data via our data dumps,

```
gs://osv-vulnerabilities/external_metadata/CVE-1234.json
```

which would contain the same JSON as the API.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.