agent-bom scan
Open security scanner for agentic infrastructure — agents, MCP, packages, blast radius, runtime, and trust for package CVEs (OSV, NVD, EPSS, KEV), container images, provenance, fil…
Agent Bom
@msaad00
What This Skill Does
Scans agentic infrastructure — including MCP servers, packages, container images, filesystems, and SBOMs — for known vulnerabilities (CVEs) from OSV, NVD, EPSS, and KEV databases. Runs fully locally with no required API keys and no external scanner for container images.
Replaces manual CVE lookups and separate vulnerability scanners by providing a single, zero-credential tool that covers packages, containers, SBOMs, and agent runtime configurations.
When to Use It
- Check a Python package for known CVEs before adding it to a project
- Scan a container image for vulnerabilities without pulling an external scanner
- Verify the safety of an MCP server configuration file
- Look up the blast radius of a specific CVE across installed dependencies
- Audit a CycloneDX or SPDX SBOM for security issues
- Inspect agent runtime configs (Claude, Cursor, Cline, etc.) for misconfigurations or trust risks
Install
$ openclaw skills install @msaad00/agent-bom-scanagent-bom-scan — AI Supply Chain Vulnerability Scanner
Checks packages for CVEs, scans container images natively, verifies package provenance via Sigstore, scans filesystems, and generates SBOMs.
Install
pipx install agent-bom
agent-bom scan # discover agents and scan dependencies
agent-bom check langchain==0.1.0 # check a specific package with version
agent-bom image nginx:1.25 # scan container image (native)
agent-bom fs . # scan filesystem packages
agent-bom scan . -f cyclonedx -o sbom.json # generate an SBOM
agent-bom verify agent-bom # verify Sigstore provenance
agent-bom where # show all discovery paths
As an MCP Server
{
"mcpServers": {
"agent-bom": {
"command": "uvx",
"args": ["agent-bom", "mcp", "server"]
}
}
}
When to Use
- "check package" / "is this package safe"
- "scan image" / "scan container"
- "verify" / "check provenance"
- "is this safe" / "CVE lookup"
- "scan dependencies"
- "blast radius"
- "generate SBOM"
Tools (8)
| Tool | Description |
|---|---|
check | Check a package for CVEs (OSV, NVD, EPSS, KEV) |
scan | Full discovery + vulnerability scan pipeline |
blast_radius | Map CVE impact chain across agents, servers, credentials |
remediate | Prioritized remediation plan for vulnerabilities |
verify | Package integrity + SLSA provenance check |
diff | Compare two scan reports (new/resolved/persistent) |
where | Show MCP client config discovery paths |
inventory | List discovered agents, servers, packages |
Examples
# Check a package before installing
check(package="langchain", version="0.1.0", ecosystem="pypi")
# Map blast radius of a CVE
blast_radius(cve_id="CVE-2024-21538")
# Full scan
scan()
# Verify package provenance
verify(package="agent-bom")
Agentic Workflows
Use tool chains, not isolated calls, when the user asks for a decision:
| User intent | Recommended sequence | Output |
|---|---|---|
| "Is this MCP safe to install?" | registry_lookup -> check -> blast_radius when a package/version is known | concise allow/warn/block recommendation with evidence |
| "Gate this PR" | scan with SARIF output and fail on high/critical findings | SARIF for code scanning plus non-zero gate result |
| "Audit my fleet inventory" | validate inventory -> scan/agents with JSON output -> context_graph | findings plus graph-ready JSON |
| "What changed since last run?" | current scan -> diff against prior JSON | new/resolved/persistent findings |
| "What should I fix first?" | scan -> blast_radius -> remediate plan | prioritized plan only; no file writes |
Pick output by consumer: SARIF for CI, JSON for automation/graph, HTML or Markdown for human review, CycloneDX/SPDX for SBOM consumers.
For CLI gates, prefer:
agent-bom scan --format sarif --output agent-bom.sarif --fail-on-severity high
Guardrails
- Show CVEs even when NVD analysis is pending or severity is
unknown— a CVE ID is still a real finding. - Treat
UNKNOWNseverity as unresolved, not benign — it means data is not yet available. - Do not modify any files, install packages, or change system configuration.
- Only public package names and CVE IDs leave the machine for vulnerability database lookups.
- Ask before scanning paths outside the user's home directory.
Privacy & Data Handling
# Step 1: Install
pip install agent-bom
# Step 2: Review redaction logic BEFORE scanning
# sanitize_env_vars() redacts credential-like and sensitive env values before
# reporting; benign configuration values may remain in the in-memory model:
# https://github.com/msaad00/agent-bom/blob/main/src/agent_bom/security.py
# Step 3: Verify package provenance (Sigstore)
agent-bom verify agent-bom
# Step 4: Only then run scans
agent-bom scan
Verification
- Source: github.com/msaad00/agent-bom (Apache-2.0)
- Sigstore signed:
agent-bom verify agent-bom@0.107.2 - 7,100+ tests with CodeQL + OpenSSF Scorecard
- No telemetry: Zero tracking, zero analytics
Top skills in this category
Anti-Injection-Skill
@georges91560Detect prompt injection, jailbreak, role-hijack, and system extraction attempts. Applies multi-layer defense with semantic analysis and penalty scoring.
Skill Vetter
@spclaudehomeSecurity-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, etc.
Marketing Skills
@jchopard69Access 23 marketing modules offering checklists, frameworks, and ready-to-use deliverables for CRO, SEO, copywriting, analytics, launches, ads, and social me...
OpenClaw Command Center
@jontsaiMission control dashboard for OpenClaw - real-time session monitoring, LLM usage tracking, cost intelligence, and system vitals. View all your AI agents in one place.