agentsclimarketplace

Vulnerability Scanning

Skill TheSethRose/Vulnerability-Scanning

Local-first vulnerability and supply-chain scanning for agent runtimes.

Install
npx -y skills add TheSethRose/Vulnerability-Scanning

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Local vulnerability scans: dependencies, secrets, GitHub Actions, SAST, SBOM, package intake, cron/predeploy.

SKILL.md

8.0 KB, as published. Nobody here has run it

Vulnerability Scanning

Use this skill to inspect codebases, choose local security scanners, run the repo CLI or direct tools, and report evidence-backed findings without requiring SaaS services for normal scans.

Start Here

  1. Read the user's scope and scan mode.
  2. Inspect manifests, lockfiles, workflows, Docker/IaC files, and extension metadata.
  3. Validate tools before scanning:
python3 scripts/vuln-scan.py validate-tools --config templates/config-starter.yaml --format text

Use --deep before broad or unattended scans. Do not install scanners unless the user explicitly asks for setup or approves host changes. Missing scanners, timeouts, unsupported targets, and parse failures are setup debt, not clean coverage. Install guidance lives in references/install-tools.md.

Default Posture

  • Use scripts/vuln-scan.py scan when it supports the requested mode.
  • Start from templates/config-starter.yaml; override narrowly.
  • Keep full focused on security: dependencies, broad repo, secrets, workflow, and SAST.
  • Keep SBOM, hygiene, supply-chain/package-intake, and license scanning explicit.
  • Keep Gitleaks history scans off for broad workspaces unless doing a deep secret audit.
  • Keep Scorecard disabled unless --scan-mode hygiene is requested.
  • Keep package_intake.osv_api_enabled: false unless the user wants public OSV lookup.
  • Put --output and --artifact-dir outside target repos for multi-repo scans, usually under /tmp.

Core Commands

Run a normal scan:

python3 scripts/vuln-scan.py scan \
  --config templates/config-starter.yaml \
  --root /path/to/repo-or-workspace \
  --scan-mode full \
  --output /tmp/vuln-summary.json \
  --artifact-dir /tmp/vuln-artifacts \
  --format text

Plan without scanner execution:

python3 scripts/vuln-scan.py plan --config templates/config-starter.yaml --root /path/to/repo --scan-mode full --format text

List engines or validate tools:

python3 scripts/vuln-scan.py list-engines --format text
python3 scripts/vuln-scan.py validate-tools --config templates/config-starter.yaml --format text --deep

Retest focused engines:

python3 scripts/vuln-scan.py scan --root /path/to/repo --scan-mode full --only-engine trivy --output /tmp/vuln-summary.json --artifact-dir /tmp/vuln-artifacts --format text

Render an existing JSON summary:

python3 scripts/vuln-scan.py render-report /tmp/vuln-summary.json --format text

For more examples, direct tool fallback syntax, and parser expectations, read README.md and references/.

Compatibility Notes

  • scripts/nightly-vuln-scan.py may remain in use for existing cron jobs.
  • If setup is requested, use references/install-tools.md for install commands and tool-specific troubleshooting.
  • When the repo CLI does not support a needed engine, run the direct tool only after verifying syntax against the installed version, and save raw output under the artifact directory.
  • Use $HOME/.hermes/vuln_knowledge.json or the configured tracker path to avoid reprocessing known fixed, unfixable or blocked findings until their retry window expires.

Scan Modes

ModeUse
fullDefault local security scan; SBOM, hygiene, supply-chain, and licenses remain explicit
dependenciesKnown vulnerable dependency checks
secretsSecret scanning and git-tracked .env* checks
ciGitHub Actions and CI workflow checks
supply-chainPackage-intake and malicious-package behavior checks
sastSource-code security scanning
sbomSBOM generation and optional SBOM vulnerability checks
hygieneRepo security hygiene checks
remediation-prepGroup findings by likely fix strategy without editing

Scanner Selection

Evidence or requestPreferred scanner
Supported dependency manifests or lockfilesOSV Scanner first, then native audit
bun.lock or bun.lockbbun audit --json
package-lock.jsonnpm audit --json
pnpm-lock.yamlpnpm audit --json
Python manifestspip-audit
Rust manifestscargo audit
Go or JVM manifestsOSV Scanner; add dedicated tooling only when implemented or direct-run and reported
Dockerfile, Compose, Terraform, Kubernetes, HelmTrivy filesystem scan
Image targetTrivy image scan
License reviewAdd --include-licenses
Secrets-only or git repoGitleaks; TruffleHog for verified credential checks
Missing secret toolsBuilt-in metadata-only secret-pattern scan
New npm or PyPI dependencyGuardDog; optional OSV API lookup only when enabled or requested
GitHub Action intakeGuardDog, zizmor, action pinning checks
.github/workflowszizmor and actionlint
Source security scanSemgrep CE with --config=auto
SBOM requestedSyft, then Grype when vulnerability scan from SBOM is needed
Repo hygiene requestedOpenSSF Scorecard, noting network/API requirements

Scope Rules

  • Keep monorepo subprojects separate and label targets by stable relative path.
  • Skip generated, vendored, archived, fixture, example, cache, build, and dependency directories unless requested.
  • Use --allowed-root, --allowed-label-prefix, --forbidden-label-prefix, and --fail-on-scope-violation for unattended scans.
  • Treat scope violations as blockers for strict unattended scans.

Reporting Contract

Every non-silent report must include:

  • scope, scan mode, exact commands, artifact paths
  • findings grouped by repo/project
  • setup debt grouped separately
  • skipped targets and remaining uncertainty when relevant
  • counts by severity, category, and scanner
  • coverage status by category: scanned, verified_clean, not_requested, not_applicable, skipped, unsupported, scanner_missing, scanner_failed, or timed_out

Never print secret values. Report metadata only: file, line, detector, severity, confidence, git-tracked state, and remediation hint. Normalized report fields are documented in references/report-schema.md.

Silent Cron

For unattended cron delivery, respond exactly:

[SILENT]

Only do this when there are zero findings, actionable setup-debt items, scope violations, parse failures, and scanner timeouts. Do not return [SILENT] if a missing tool prevented coverage.

Package Intake

For dependency intake, identify ecosystem and package, then run:

python3 scripts/vuln-scan.py package-intake npm package-name --output /tmp/package-intake.json --artifact-dir /tmp/package-intake-artifacts --format text

Supported ecosystems: npm, pypi, go, rubygems, github_action, extension. Return one of allow, allow with caution, avoid, or blocked pending review. Do not add the dependency unless separately asked.

Remediation

The scan phase is read-only. Run Codex remediation only when the user explicitly asks or the command includes --auto-remediate.

For remediation, preserve one log per repo under the artifact directory and guard each task:

  • work only inside the affected repo
  • do not branch, commit, push, delete unrelated files, rotate credentials, or rewrite history
  • prefer narrow package manager or manifest changes
  • rerun the scanner engine that produced the finding
  • report changed files, commands, fixed findings, remaining findings, and blocked items

Use $HOME/.hermes/vuln_knowledge.json or the configured tracker path to skip known fixed/unfixable/blocked findings until their retry window expires.

Safety

  • Do not use this for exploit attempts, credential extraction, production credential rotation, git history rewriting, or compliance certification claims.
  • Do not bypass auth, validation, permissions, CORS, rate limits, sandboxing, or data protections as a workaround.
  • Do not treat missing tools, unsupported targets, parse failures, or scanner timeouts as clean results.
  • Do not run destructive git, database, credential, or deployment commands during scan mode.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.