Skip to content

feat: add v1 Golang Vulncheck Analyzer#8678

Open
cvas22 wants to merge 2 commits into
dependency-check:mainfrom
cvas22:main
Open

feat: add v1 Golang Vulncheck Analyzer#8678
cvas22 wants to merge 2 commits into
dependency-check:mainfrom
cvas22:main

Conversation

@cvas22

@cvas22 cvas22 commented Jul 21, 2026

Copy link
Copy Markdown

Description of Change

Adds a new v1 analyzer that runs the Go team's govulncheck against Go modules and reports the vulnerabilities it finds, sourced from the curated Go vulnerability database.

Unlike the CPE-matching Golang Mod Analyzer, govulncheck performs call-graph reachability analysis in source mode (govulncheck -json ./...), so it reports primarily the vulnerabilities actually reachable from the scanned code - substantially reducing false positives/negatives for Go.

Design:

Source mode only, keyed off go.mod (reuses existing module detection); binary mode is intentionally out of scope for v1.
Native -json (OSV) output; streaming parser joins osv advisories with finding records and selects the most precise (reachable) finding.
De-duplicates against other data sources via OSV aliases: reuses an existing NVD vulnerability when a CVE alias matches, otherwise synthesizes one under the GO-YYYY-NNNN id.
Reports against the vulnerable module as a synthetic pkg:golang dependency.
Disabled by default; requires go and govulncheck to be installed.

New:

GolangVulncheckAnalyzer, GovulncheckProcessor
GovulncheckJsonParser, GovulncheckResult
Settings keys analyzer.golang.vulncheck.{enabled,path}
Vulnerability.Source.GOVULNCHECK
Config wiring: CLI (--enableGolangVulncheck, --govulncheck), Ant (golangVulncheckEnabled, pathToGovulncheck), Maven (golangVulncheckEnabled, pathToGovulncheck).

Tests: unit tests for the parser and analyzer; an integration test that runs real govulncheck end-to-end (self-skips when the tool is absent).

Docs: analyzer page, analyzers index, CLI/Ant/Maven configuration, and bash completion updated.

Related issues

attempts to address #8470

Have test cases been added to cover the new functionality?

yes

cvas22 added 2 commits July 20, 2026 20:00
Adds a new experimental analyzer that runs the Go team's `govulncheck`
against Go modules and reports the vulnerabilities it finds, sourced from
the curated Go vulnerability database.

Unlike the CPE-matching Golang Mod Analyzer, govulncheck performs call-graph
reachability analysis in source mode (`govulncheck -json ./...`), so it
reports primarily the vulnerabilities actually reachable from the scanned
code - substantially reducing false positives/negatives for Go.

Design:
- Source mode only, keyed off `go.mod` (reuses existing module detection);
  binary mode is intentionally out of scope for v1.
- Native `-json` (OSV) output; streaming parser joins `osv` advisories with
  `finding` records and selects the most precise (reachable) finding.
- De-duplicates against other data sources via OSV aliases: reuses an
  existing NVD vulnerability when a CVE alias matches, otherwise synthesizes
  one under the GO-YYYY-NNNN id.
- Reports against the vulnerable module as a synthetic pkg:golang dependency.

Disabled by default; requires `go` and `govulncheck` to be installed.

New:
- GolangVulncheckAnalyzer, GovulncheckProcessor
- GovulncheckJsonParser, GovulncheckResult
- Settings keys analyzer.golang.vulncheck.{enabled,path}
- Vulnerability.Source.GOVULNCHECK

Config wiring: CLI (--enableGolangVulncheck, --govulncheck), Ant
(golangVulncheckEnabled, pathToGovulncheck), Maven (golangVulncheckEnabled,
pathToGovulncheck).

Tests: unit tests for the parser and analyzer; an integration test that runs
real govulncheck end-to-end (self-skips when the tool is absent).

Docs: analyzer page, analyzers index, CLI/Ant/Maven configuration, and bash
completion updated.
@boring-cyborg boring-cyborg Bot added ant changes to ant cli changes to the cli core changes to core documentation site documentation maven changes to the maven plugin tests test cases utils changes to utils labels Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ant changes to ant cli changes to the cli core changes to core documentation site documentation maven changes to the maven plugin tests test cases utils changes to utils

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant