Skip to content

bomly-plugin-osv-matcher

OSV vulnerability matcher for Bomly.

It enriches packages in a Bomly scan with vulnerability data from OSV.dev, then flags vulnerabilities listed in the CISA KEV catalog as actively exploited.

Already inside the Bomly CLI. This matcher ships embedded in the bomly binary as the built-in osv matcher — you do not need to install this plugin to use OSV enrichment. This repository is the matcher's home as a standalone module: the Bomly CLI consumes the same code in-process, and the plugin binary serves it to hosts that run matchers as managed subprocesses.

Identity

  • Plugin id / descriptor name: osv
  • Kind: matcher
  • Module path: github.com/bomly-dev/bomly-plugin-osv-matcher

Network behavior

This matcher performs network calls only during enrichment (bomly scan --enrich), never during audit-only runs:

  • https://api.osv.dev — batch vulnerability queries and per-vulnerability detail records.
  • https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json — the KEV catalog (skippable with disable_kev).

Responses are cached on disk (default ~/.bomly/cache/osv, ~/.bomly/cache/osv-vulns, and ~/.bomly/cache/kev). Cache failures are non-fatal: the matcher logs a warning and continues without caching.

Configuration

Embedded execution is configured through the Bomly CLI's own osv settings. Managed execution reads a JSON block under plugins.matchers.osv:

Key Type Default Meaning
api_base string https://api.osv.dev OSV API base URL
cache_dir string ~/.bomly/cache/osv Package-level result cache
cache_ttl duration string 24h Package-level cache TTL
bypass_cache bool false Always fetch fresh results
disable_kev bool false Skip the KEV enrichment pass
kev_cache_dir string ~/.bomly/cache/kev KEV catalog cache
kev_cache_ttl duration string 6h KEV catalog cache TTL
vuln_detail_cache_dir string ~/.bomly/cache/osv-vulns Per-vulnerability detail cache
vuln_detail_cache_ttl duration string 168h Detail cache TTL

Package-updates delta protocol

The matcher advertises package-updates-v1. When the host sets AcceptPackageUpdates, Match leaves the request registry untouched and returns one delta per enriched package (PURL, Matched, and the vulnerability list). This is safe because every registry mutation the legacy in-place path performs is expressible through Package.MergeFrom: vulnerabilities are unioned by (Source, ID) and Matched is ORed in. The equivalence is pinned by TestMatchDeltaEquivalence.

Development

make test    # unit tests + SDK conformance suite
make build   # build bin/bomly-plugin-osv-matcher

License

Apache-2.0. See LICENSE and NOTICE.

About

OSV vulnerability matcher plugin for Bomly (embedded in the CLI; standalone module + managed plugin binary)

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages