Skip to content
Security
Skill

/clawsec-scanner

Automated vulnerability scanner for agent platforms. Performs dependency scanning (npm audit, pip-audit), multi-database CVE lookup (OSV, NVD, GitHub Advisory), SAST analysis (Semgrep, Bandit), and agent-specific static hook inspection for OpenClaw hooks.

From plugin
clawsec
1.1k16 skills

Claude Code

$ npx -y skills add prompt-security/clawsec --skill clawsec-scanner --agent claude-code

SKILL.md

clawsec-scanner.SKILL.md
name: clawsec-scanner
version: 0.0.7
description: Automated vulnerability scanner for agent platforms. Performs dependency scanning (npm audit, pip-audit), multi-database CVE lookup (OSV, NVD, GitHub Advisory), SAST analysis (Semgrep, Bandit), and agent-specific static hook inspection for OpenClaw hooks.
homepage: https://clawsec.prompt.security
clawdis:
  emoji: "🔍"
  requires:
    bins: [node, npm, python3, pip-audit, semgrep, bandit, jq, curl]

ClawSec Scanner

Comprehensive security scanner for agent platforms that automates vulnerability detection across multiple dimensions:

  • **Dependency Scanning**: Analyzes npm and Python dependencies using `npm audit` and `pip-audit` with structured JSON output parsing
  • **CVE Database Integration**: Queries OSV (primary), NVD 2.0, and GitHub Advisory Database for vulnerability enrichment
  • **SAST Analysis**: Static code analysis using Semgrep (JavaScript/TypeScript) and Bandit (Python) to detect hardcoded secrets, command injection, path traversal, and unsafe deserialization
  • **DAST Framework**: Agent-specific static analysis of OpenClaw hook metadata and handler source without importing or invoking target code
  • **Unified Reporting**: Consolidated vulnerability reports with severity classification and remediation guidance
  • **Continuous Monitoring**: OpenClaw hook integration for automated periodic scanning

Vercel Skills Installation

Install with the Vercel Skills CLI for this harness:

npx skills add prompt-security/clawsec --skill clawsec-scanner -a openclaw -y

Features

Multi-Engine Scanning

The scanner orchestrates four complementary scan types to provide comprehensive vulnerability coverage:

1. **Dependency Scanning**

  • Executes `npm audit --json` and `pip-audit -f json` as subprocesses
  • Parses structured output to extract CVE IDs, severity, affected versions
  • Handles edge cases: missing package-lock.json, zero vulnerabilities, malformed JSON

2. **CVE Database Queries**

  • **OSV API** (primary): Free, no authentication, broad ecosystem support (npm, PyPI, Go, Maven)
  • **NVD 2.0** (optional): Requires API key to avoid 6-second rate limiting
  • **GitHub Advisory Database** (optional): GraphQL API with OAuth token
  • Normalizes all API responses to unified `Vulnerability` schema

3. **Static Analysis (SAST)**

  • **Semgrep** for JavaScript/TypeScript: Detects security issues using `--config auto` or `--config p/security-audit`
  • **Bandit** for Python: Leverages existing `pyproject.toml` configuration
  • Identifies: hardcoded secrets (API keys, tokens), command injection (`eval`, `exec`), path traversal, unsafe deserialization

4. **Dynamic Analysis (DAST)**

  • Static hook inspection for OpenClaw hook handlers discovered from `HOOK.md` metadata
  • Verifies coverage and source-level risk signals without importing, transpiling, or invoking target handlers
  • Note: Traditional web DAST tools (ZAP, Burp) do not apply to agent platforms - this provides agent-specific testing

Unified Reporting

All scan types emit a consistent `ScanReport` JSON schema:

{
  scan_id: string;         // UUID
  timestamp: string;       // ISO 8601
  target: string;          // Scanned path
  vulnerabilities: Vulnerability[];
  summary: {
    critical: number;
    high: number;
    medium: number;
    low: number;
    info: number;
  }
}

Each `Vulnerability` object includes:

  • `id`: CVE-2023-12345 or GHSA-xxxx-yyyy-zzzz
  • `source`: npm-audit | pip-audit | osv | nvd | github | sast | dast
  • `severity`: critical | high | medium | low | info
  • `package`: Package name (or 'N/A' for SAST/DAST)
  • `version`: Affected version
  • `fixed_version`: First version with fix (if available)
  • `title`: Short description
  • `description`: Full advisory text
  • `references`: URLs for more info
  • `discovered_at`: ISO 8601 timestamp

OpenClaw Integration

Automated continuous monitoring via hook:

  • Runs scanner on configurable interval (default: 86400s / 24 hours)
  • Triggers on `agent:bootstrap` and `command:new` events
  • Posts findings to `event.messages` array with severity summary
  • Rate-limited by `CLAWSEC_SCANNER_INTERVAL` environment variable

Installation

Prerequisites

Verify required binaries are available:

# Core runtimes
node --version  # v20+
npm --version
python3 --version  # 3.10+

# Scanning tools
pip-audit --version  # Install: uv pip install pip-audit
semgrep --version    # Install: pip install semgrep OR brew install semgrep
bandit --version     # Install: uv pip install bandit

# Utilities
jq --version
curl --version

Option A: Via clawhub (recommended)

npx clawhub@latest install clawsec-scanner

Option B: Manual installation with verification

set -euo pipefail

VERSION="${SKILL_VERSION:?Set SKILL_VERSION (e.g. 0.1.0)}"
INSTALL_ROOT="${INSTALL_ROOT:-$HOME/.openclaw/skills}"
DEST="$INSTALL_ROOT/clawsec-scanner"
BASE="https://github.com/prompt-security/clawsec/releases/download/clawsec-scanner-v${VERSION}"

TEMP_DIR="$(mktemp -d)"
trap 'rm -rf "$TEMP_DIR"' EXIT

# Pinned release-signing public key
# Fingerprint (SHA-256 of SPKI DER): 711424e4535f84093fefb024cd1ca4ec87439e53907b305b79a631d5befba9c8
cat > "$TEMP_DIR/release-signing-public.pem" <<'PEM'
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAS7nijfMcUoOBCj4yOXJX+GYGv2pFl2Yaha1P4v5Cm6A=
-----END PUBLIC KEY-----
PEM

ZIP_NAME="clawsec-scanner-v${VERSION}.zip"

# Download release archive + signed checksums
curl -fsSL "$BASE/$ZIP_NAME" -o "$TEMP_DIR/$ZIP_NAME"
curl -fsSL "$BASE/checksums.json" -o "$TEMP_DIR/checksums.json"
curl -fsSL "$BASE/checksums.sig" -o "$TEMP_DIR/checksums.sig"

# Verify checksums manifest signature
openssl base64 -d -A -in "$TEMP_DIR/checksums.sig" -out "$TEMP_DIR/checksums.sig.bin"
if ! openssl pkeyutl -verify \
  -pubin \
  -inkey "$TEMP_DIR/release-signing-public.pem" \
  -sigfile "$TEMP_DIR/checksums.sig.bin" \
  -rawin \
  -in "$TEMP_DIR/checksums.jso
Read more
@prompt-security
Ships withclawsec

A complete security skill suite for OpenClaw, Hermes, PicoClaw and NanoClaw agents (and variants). Protect your SOUL.md (etc') with drift detection, live security recommendations, automated audits, and skill integrity verification. All from one installable suite.

Stars on GitHub

Momentum

stars in total
1.1k
Star history of prompt-security/clawsec on GitHub, a chart by star-history.com

Other skills on clawsec.

claw-release

claw-release

Release automation for Claw skills and website. Guides through version bumping, tagging, and release verification.

clawsec-feed

clawsec-feed

Security advisory feed package for OpenClaw-related threats and vulnerabilities. The upstream feed is updated daily; local…

clawsec-nanoclaw

clawsec-nanoclaw

Use when checking for security vulnerabilities in NanoClaw skills, before installing new skills, or when asked about security…

clawsec-suite

clawsec-suite

ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated…

clawtributor

clawtributor

Harness-neutral community incident reporting for AI agents. Contribute to collective security by reporting threats.

More skills from other plugins.

api-security

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…

@zhaoxuya520@zhaoxuya520Install Skill
nemoclaw-user-guide

nemoclaw-user-guide

Find official NemoClaw documentation for installation, configuration, operation, or troubleshooting. Also handles requested docs…

nemoclaw12d23k
@nvidia@nvidiaInstall Skill

Questions about clawsec-scanner.

Which coding agents can use clawsec-scanner?
clawsec-scanner installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.