commit | 891cae2b2a81634fb4b66b22e435e6714e9e6e14 | [log] [tgz] |
---|---|---|
author | Jonathan Amsterdam <jba@google.com> | Mon Dec 13 06:15:39 2021 -0500 |
committer | Jonathan Amsterdam <jba@google.com> | Mon Dec 13 20:09:36 2021 +0000 |
tree | 07d5340ced86b8097d10ad5329ee0fcc1d4a1770 | |
parent | d71ffde246e8627d5a359f3fcacbdfcc7d078800 [diff] |
internal/worker: handle false positive changes Add a triage state for false positives. When determining whether a changed CVE with false-positive state needs an issue, ignore the reference URLs we already know about. Here is the scenario this CL is designed to address: 1. A CVE is a known false positive, meaning that although it has a reference URL that suggests Go is involved, we know it isn't. We initialize the DB with it. 2. In a later commit, the CVE changes. Perhaps references are added. 3. On the next update, the triage algorithm will match the same URLs that triggered it the first time, and we will change the state to NeedsIssue. By distinguishing the states NoActionNeeded and FalsePositive, and remembering the reference URLs that were used when the false positive was identified, we can avoid this. But if a new, Go-relevant URLs is added, we'll see that it's not in our list and then, validly, re-label the CVE as NeedsIssue. Also, add a HasVuln state for CVEs that are already covered by existing Go vulnerability reports. Even though we check the Go vulndb when we triage, we need to represent these specially because the Go vuln report can mention only one CVE, so other matching ones must be handled this way. Change-Id: I3c67a8c8911b261a376a64fcc7f54f387c2bd457 Reviewed-on: https://go-review.googlesource.com/c/vuln/+/370838 Trust: Jonathan Amsterdam <jba@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Julie Qiu <julie@golang.org>
This repository contains code for hosting the Go Vulnerability Database. The actual reports can be found at x/vulndb.
Neither the code, nor the data, nor the existence of this repository is to be considered stable. See the Draft Design for details on this project.
The Go vulnerability database is rooted at https://storage.googleapis.com/go-vulndb
and provides data as JSON. We recommend using client.Client to read data from the Go vulnerability database.
Do not rely on the contents of the x/vulndb repository. The YAML files in that repository are maintained using an internal format that is subject to change without warning.
The endpoints the table below are supported. For each path:
https://storage.googleapis.com/go-vulndb
).GO-2021-1234
)Path | Description |
---|---|
$base/index.json | List of module paths in the database mapped to its last modified timestamp (link). |
$base/$module.json | List of vulnerability entries for that module (example). |
$base/ID/index.json | List of all the vulnerability entries in the database |
$base/ID/$vuln.json | An individual Go vulnerability report |
Note that these paths 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.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Database entries available at https://storage.googleapis.com/go-vulndb/ are distributed under the terms of the CC-BY 4.0 license.