Skip to content

Back to the catalog

Cloudflare security-audit-skill
github.comrepo

Cloudflare security-audit-skill

security-audit-skill is a Cloudflare open-source coding-agent skill that turns an AI coding agent into a structured vulnerability hunter, running six phases: reconnaissance into architecture.md/coverage-ledger.json, coverage-led hunting by isolated sub-agent "hunters," adversarial candidate validation, structured findings.json output validated against a report-schema.json, independent re-verification of claims, and target-neutral report generation (REPORT.md, FINDINGS-DETAIL.md, NEEDS-VALIDATION.md). It is installed via the Skills CLI (`npx skills add`), uses Node.js validators (validate-coverage-ledger.cjs, validate-findings.cjs), requires a sandboxed environment for safely executing target code/tests/fuzzers, and is the single-repo seed for Cloudflare's larger fleet-wide vulnerability discovery harness described in a companion blog post.

TL;DR Cloudflare's open-source agent skill orchestrates isolated AI sub-agents through recon, coverage-led hunting, adversarial validation, and target-neutral reporting to automate codebase security audits.
Document

What it is

Cloudflare's security-audit-skill (MIT-licensed) — a coding-agent skill that runs a six-phase security audit. The existing summary covers the phase pipeline and file outputs; what it omits is the skill's operating philosophy, its sandbox contract, and one benchmark number that changes how you'd use it.

How it works — the rules that shape findings

The skill's value is in what it refuses to call a vulnerability:

  • Severity requires impact. Scoring is likelihood × impact, not deviation from a checklist.
  • Defense-in-depth gaps are not vulnerabilities. If Layer A already prevents the attack, a missing Layer B is a hardening note, not a finding.
  • Adversarial validation is enforced structurally: the agent that checks a finding is never the agent that found it.
  • Three distinct verdicts: confirmed needs a complete source trace and a bounded observed result; needs_validation records an exact unresolved fact and carries no severity; rejected records a disproved candidate.

Preconditions — the sandbox is mandatory, not optional

Executing target code (builds, tests, fuzzers, browsers, emulators) requires an OS-enforced sandbox that:

  • disables external networking,
  • uses a sanitized allowlisted environment,
  • enforces resource limits,
  • allows writes only to assigned scratch paths.

Without these controls the workflow does not run target code — it leaves the lead as needs_validation. This is the concrete behavior an engineer needs to plan for: no sandbox means no dynamic confirmation. Node.js is required for the zero-dependency validators.

What to do

Install per-project:

npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit

Or user-level:

npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit \
  --global

Then, from a coding agent pointed at the target repo, trigger with plain language — security audit this codebase, find security vulnerabilities in ./src, do a security review, output to ~/audits/my-project. A direct audit/pen-test request uses full audit mode; security questions and focused work use guidance mode unless you ask for report artifacts. In full audit mode an unspecified output directory defaults to ~/security-audit-skill/<repo-name>/run-<N>, and the workflow only writes inside the target repo if you explicitly point it at a VCS-ignored directory.

Caveats

  • One run finds roughly half. Cloudflare states that in their test runs a single run found about half the vulnerabilities that repeated runs found in total — runs are additive, reusing prior ledgers to target gaps and revalidate changed source. Plan on multiple runs.
  • Feedback contact: security-ai-research@cloudflare.com.

Technologies named here

Techniques named here