Tools for Deep Scanning Archives and Repositories

src.agwa.name/deepscan is a Go library that recursively descends into archives and repositories,
executing a given function for every file that it finds. It's extensible, allowing you to add support
for your own URL schemes and archive formats.
govulncheck-deep
govulncheck-deep is a command line program that runs govulncheck
on every Go binary it can find at a specified URL, descending into archives as needed. There are other programs that do deep vulnerability scanning, but they don't use govulncheck so they return many false positives.
For example, if you have an S3 bucket of tarballs containing Go binaries, you can run the following command to check them for vulnerabilities:
govulncheck-deep s3://mybucket
The argument must be a URL with one of the supported schemes listed below.
If govulncheck finds a vulnerability, the path to the binary is written to stdout followed by the output of govulncheck.
If no vulnerabilities are found, nothing is written to stdout.
To install govulncheck-deep, run:
go install src.agwa.name/deepscan/cmd/govulncheck-deep@latest
Supported Archive Formats
.deb
.tar
.tar.bz2
.tar.gz
.tgz
.zip
Supported URL Schemes
apt+http://, apt+https:// -- followed by a hostname and path to an APT repository; see the documentation for more information
file:// -- followed by a path to a file or directory
s3:// -- followed by the name of an S3 bucket