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-scan

agent-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)

ToolDescription
checkCheck a package for CVEs (OSV, NVD, EPSS, KEV)
scanFull discovery + vulnerability scan pipeline
blast_radiusMap CVE impact chain across agents, servers, credentials
remediatePrioritized remediation plan for vulnerabilities
verifyPackage integrity + SLSA provenance check
diffCompare two scan reports (new/resolved/persistent)
whereShow MCP client config discovery paths
inventoryList 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 intentRecommended sequenceOutput
"Is this MCP safe to install?"registry_lookup -> check -> blast_radius when a package/version is knownconcise allow/warn/block recommendation with evidence
"Gate this PR"scan with SARIF output and fail on high/critical findingsSARIF for code scanning plus non-zero gate result
"Audit my fleet inventory"validate inventory -> scan/agents with JSON output -> context_graphfindings plus graph-ready JSON
"What changed since last run?"current scan -> diff against prior JSONnew/resolved/persistent findings
"What should I fix first?"scan -> blast_radius -> remediate planprioritized 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 UNKNOWN severity 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