internal/vulncheck, internal/scan: improve stdlib reporting

This CL addresses several issues:
- stdlib findings were never emitted on module level. The Package field
  was always set. This is inconsistent and sometimes wrong. When ran in
  -scan=module mode, the Package would be set to a first package path
  that exists in OSV, although that package would might not even be
  imported.
- stdlib findings at package level were never presented in -scan=package
  mode. govulncheck text would say that the stdlib package is not
  imported although in fact it might be.

This CL also puts stdlib-specific test files in their own folder.

Change-Id: Ia496f64757da194aeb2fe0c0ecdd699e87e08e4b
Reviewed-on: https://go-review.googlesource.com/c/vuln/+/562778
Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Maceo Thompson <maceothompson@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
20 files changed
tree: 9e14e485c0205fdb3d27850413485a6e726d1b56
  1. cmd/
  2. doc/
  3. internal/
  4. scan/
  5. .gitignore
  6. all_test.go
  7. CONTRIBUTING.md
  8. go.mod
  9. go.sum
  10. LICENSE
  11. PATENTS
  12. README.md
README.md

Go Vulnerability Management

Go Reference

Go's support for vulnerability management includes tooling for analyzing your codebase and binaries to surface known vulnerabilities in your dependencies. This tooling is backed by the Go vulnerability database, which is curated by the Go security team. Go’s tooling reduces noise in your results by only surfacing vulnerabilities in functions that your code is actually calling.

You can install the latest version of govulncheck using go install

go install golang.org/x/vuln/cmd/govulncheck@latest

Then, run govulncheck inside your module:

govulncheck ./...

See the govulncheck tutorial to get started, and https://go.dev/security/vuln for more information about Go's support for vulnerability management. The API documentation can be found at https://pkg.go.dev/golang.org/x/vuln/scan.

Privacy Policy

The privacy policy for govulncheck can be found at https://vuln.go.dev/privacy.

License

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

Database entries available at https://vuln.go.dev are distributed under the terms of the CC-BY 4.0 license.