Help us shape the future of Go! Take the 2026 Go Developer Survey

vulnscan

command
v0.69.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: BSD-3-Clause Imports: 22 Imported by: 0

Documentation

Overview

vulnscan runs govulncheck over every repository of a list and says, for each, whether a known vulnerability is REACHABLE from its code -- and, as loudly, whether the scan could read the code at all.

Written on 2026-10-10, after thirteen standard-library advisories (fixed in go1.27.2) and five x/net HTTP/2 ones (GO-2026-6603/6610/6611/6612/6617, fixed in golang.org/x/net v0.60.0) were published together, and one organisation turned out to reach them in 23 of 31 repositories through gRPC's HTTP/2 server transport. Dependabot had raised nothing: it matches requirements, not reachability, and does not load the code.

Every repository is cloned at depth 1 into a scratch directory, scanned, and removed. Each rule below is a wrong answer some earlier sweep gave:

  • ⛔ UNREAD IS NOT CLEAN. govulncheck that cannot load the packages still prints its config to stdout, with no finding, and exits 1. Read as JSON alone that is a clean repository. See judge.
  • ⛔ GOOS=linux, not the host's. Linux-only files are invisible on darwin, and nineteen findings were hidden that way before. -goos adds more.
  • ⛔ THE STANDARD LIBRARY IS JUDGED BY ONE VERSION, the toolchain the scan runs under -- so it is set (-go), not inherited from the host, and a scan whose config reports another version is refused.
  • ⛔ A `replace => ../X` NEEDS X. A sibling repository of the same organisation is cloned next to the repository, or the load fails.
  • ⛔ EVERY MODULE, not the root one: a nested go.mod is a separate build.

It makes no GitHub REST call per repository -- cloning over https costs the API budget nothing, and Renovate shares that budget.

Exit status: 0 when every repository was read and none reaches anything, 1 when something is reachable, 2 when anything could not be read -- a refusal to answer outranks an answer.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL