Skip to content

vulngate: each program scanned on its own, in a process of its own - #33

Merged
aledbf merged 1 commit into
mainfrom
vulngate-per-program
Oct 13, 2026
Merged

aledbf merged 1 commit into
mainfrom
vulngate-per-program

Conversation

@aledbf

@aledbf aledbf commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

On spin, go tool vulngate ./... peaked at 11.5 GB, and a plain govulncheck of ./... got OOM-killed at 10 GB while the gate ran. govulncheck builds one SSA program and call graph of everything it is handed, and the union costs far more than its parts. Measured on spin, 2026-10-13:

scan peak RSS time
./... at once (before) 11.5 GB 149 s
each binary alone 0.8 – 4.1 GB (largest: cmd/proxy, Caddy) 1 – 13 s
per program, in one process 7.9 GB (memory kept between runs) 131 s
per program, a process each (this PR) 4.2 GB 46 s
  • vulngate expands the patterns with go list. Each main package becomes its own govulncheck run, plus one run of the named packages that no main imports. Findings from every run are judged together, so the rule is the same.
  • Each run is vulngate re-executing itself (VULNGATE_SCAN=1), so a run's memory is given back when it ends.
  • Flags are passed through and must be written -flag=value. -tags= also reaches go list.

mutate: 18 refused, 0 survived.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

govulncheck builds one call graph of everything it is handed: spin's
./... at once peaked at 11.5 GB, and a plain govulncheck of it was
OOM-killed during the gate, where its largest program alone is 4.1 GB.
vulngate scans each main package the patterns name, then what no main
imports, each as this binary run again so a run's memory goes with it,
and judges every run's findings together: 4.2 GB and 46 s on spin.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@aledbf
aledbf merged commit 6e2b16e into main Oct 13, 2026
1 check passed
@aledbf
aledbf deleted the vulngate-per-program branch October 13, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant