feat(tools): sbom_scan — CycloneDX/SPDX SBOM vulnerability scanner + CLI subcommand (+98 tests) - #64
Open
manus-use wants to merge 1 commit into
Open
feat(tools): sbom_scan — CycloneDX/SPDX SBOM vulnerability scanner + CLI subcommand (+98 tests)#64manus-use wants to merge 1 commit into
manus-use wants to merge 1 commit into
Conversation
manus-use
pushed a commit
that referenced
this pull request
Jun 29, 2026
…n PRs roadmap, and changelog section - poc-search subcommand (PR #62): multi-source PoC aggregator (trickest, VulnCheck KEV, Exploit-DB, GitHub, NVD) - changelog subcommand (PR #66): conventional-commit release automation - VulnCheck enrichment section: VULNCHECK_API_KEY optional, vulncheck-kev + nist-nvd2 indexes - Updated 8-step VI pipeline description to include VulnCheck KEV in step 2, patch diff/exploit complexity/version range in step 6 - Coming Soon table: 9 open PRs (#51 silent-patches, #53 cve-timeline, #54 version-range, #58 vendor-response, #60 poc-freshness, #63 blast-radius, #64 sbom-scan, #65 temporal-priority, #67 cluster-variants) - Updated built-in tools list to mention VulnCheck KEV and new VI tools - Added Changelog section linking to CHANGELOG.md - Updated Table of Contents with Changelog entry - Expanded Security examples to include poc-search and changelog
This was referenced Jun 29, 2026
This was referenced Jul 5, 2026
This was referenced Jul 7, 2026
This was referenced Jul 11, 2026
Open
This was referenced Jul 18, 2026
manus-use
force-pushed
the
feat/sbom-scan
branch
from
August 13, 2026 16:10
3d28d84 to
c63f828
Compare
manus-use
force-pushed
the
feat/sbom-scan
branch
from
August 15, 2026 08:08
c63f828 to
f842ded
Compare
…CLI subcommand (+98 tests)
manus-use
force-pushed
the
feat/sbom-scan
branch
from
August 17, 2026 00:09
f842ded to
a7b6f4d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the
sbom_scantool andmanus-agent sbom-scanCLI subcommand — a complete SBOM vulnerability scanner that was documented in the README but had zero implementation (no tool file, no CLI dispatch, no tests).What it does
Parses CycloneDX (JSON) and SPDX (JSON) SBOM files, batch-queries OSV.dev for known vulnerabilities affecting each component, enriches findings with current EPSS exploitation probability scores and CISA KEV membership status, then ranks results by:
CLI Usage
manus-agent sbom-scan bom.json manus-agent sbom-scan sbom.spdx.json --output json | jq .critical_countTool Features
bomFormat: "CycloneDX") and SPDX (spdxVersionfield)POST /v1/querybatch(chunked at 1000 per request)SBOM_SCAN_MAX_RETRIESandSBOM_SCAN_RETRY_BASE_DELAYenv varsTests
98 fully-mocked tests covering:
Test results: 1256 passed (baseline 1158 + 98 new), 0 failures.
Files Changed
src/manus_agent/tools/sbom_scan.py— new tool implementationsrc/manus_agent/cli.py— addedsbom-scanto_SUBCOMMANDS, parser, runner, dispatchtests/test_sbom_scan.py— 98 comprehensive testsDesign Decisions
requests(already a project dependency)Duplicate Check
Checked all 50 open PRs (#138–#187) and 30 merged PRs — no existing open or merged PR implements
sbom-scanor an SBOM scanner. Closest PRs:get_osv_data) — single-CVE OSV lookup, not SBOM scanningexport_sarif) — exports findings as SARIF, doesn't scan SBOMswatchlist) — persistent CVE tracking, different purpose