{"slug": "cloudflare-security-audit-skill", "title": "Cloudflare/Security-Audit-Skill", "summary": "Cloudflare released a coding-agent skill, Cloudflare/Security-Audit-Skill, that turns an AI agent into a security auditor by orchestrating isolated agents through six phases: reconnaissance, coverage-led hunting, candidate validation, structured output, independent record verification, and target-neutral reporting. The skill seeded Cloudflare's vulnerability discovery harness described in its \"Build your own vulnerability harness\" blog post, and runs validate-coverage-ledger.cjs after each ledger update plus validate-findings.cjs in Phase 4 and after every Phase 5 replacement. Findings are written to findings.json as confirmed, needs_validation, or rejected records validated against report-schema.json, with multiple runs against the same repo treated as additive.", "body_md": "A coding-agent skill that turns your agent into a security auditor. It orchestrates isolated agents through reconnaissance, coverage-led hunting, candidate validation, structured output, independent record verification, and target-neutral reporting.\n\nThis is the skill that seeded Cloudflare's vulnerability discovery harness, described in [Build your own vulnerability harness](https://blog.cloudflare.com/build-your-own-vulnerability-harness). The harness grew into a multi-stage, fleet-wide system; this skill is the single-repo starting point it evolved from.\n\nThe skill runs a structured audit in six phases:\n\n1. **Reconnaissance** -- map architecture, trust boundaries, input surfaces, prior evidence, and deterministic coverage in`architecture.md` and`coverage-ledger.json` .\n2. **Coverage-led hunting** -- assign isolated hunters from ledger units, record their checks, and use coverage critics to find gaps.\n3. **Candidate validation** -- give every unique candidate to a fresh verifier that tries to disprove it.\n4. **Structured output** -- write`confirmed` ,`needs_validation` , and`rejected` records to`findings.json` and validate them against`report-schema.json` .\n5. **Independent record verification** -- fresh agents verify final source claims. Material replacements receive another independent verifier.\n6. **Target-neutral reporting** -- derive`REPORT.md` ,`FINDINGS-DETAIL.md` , and`NEEDS-VALIDATION.md` from the verified records and coverage ledger.\n\nThe parent runs `validate-coverage-ledger.cjs` after creating the ledger and after each later ledger update. It runs `validate-findings.cjs` in Phase 4 and again after every Phase 5 replacement.\n\nThe verdicts are distinct: `confirmed` has a complete source trace and bounded observed result, `needs_validation` has an exact unresolved fact and no severity, and `rejected` records a disproved candidate.\n\nMultiple runs against the same repo are additive. The skill uses prior ledgers and findings to target gaps, revalidate changed source, and carry forward current-source evidence without treating stale or unresolved work as covered.\n\n| File | Purpose | \n|---|---|\n| `SKILL.md` | Setup, core principles, platform terminology, workflow overview, and audit anti-patterns | \n| `RECONNAISSANCE.md` | Phase 1 reconnaissance prompts and synthesis instructions | \n| `HUNTING.md` | Phase 2 orchestration, hunting methodology, and validation rules | \n| `ATTACK-CLASSES.md` | Core, wildcard, and obvious-things attack prompts | \n| `MEMORY-SAFETY-AND-BINARY.md` | Memory-safety, binary, and kernel hunting classes for native targets | \n| `AI-AND-LLM.md` | Prompt-injection, agent/tool, and output-handling hunting classes for LLM-backed targets | \n| `WEB-PROTOCOL-AND-AUTH.md` | HTTP request-framing, cache, and authentication-protocol hunting classes for HTTP-protocol and auth targets | \n| `CLIENT-SIDE.md` | DOM-injection, messaging-trust, UI-redress, and prototype-pollution hunting classes for client-side/browser targets | \n| `SUPPLY-CHAIN-AND-RELEASE.md` | Dependency, CI, release, signing, update, plugin, and extension hunting classes | \n| `CLOUD-AND-DEPLOYMENT.md` | IAM, infrastructure-as-code, container, serverless, ingress, and runtime-configuration hunting classes | \n| `PROTOCOLS-RPC-AND-MESSAGING.md` | RPC, serialization, queue, broker, webhook, and streaming-protocol hunting classes | \n| `RESOURCE-EXHAUSTION-AND-AVAILABILITY.md` | Shared resource, quota, queue, worker, and operator-spend hunting classes | \n| `DATA-ISOLATION-AND-LIFECYCLE.md` | Tenant isolation, cache, search, export, backup, migration, deletion, and restore hunting classes | \n| `DESKTOP-MOBILE-AND-LOCAL-IPC.md` | Native app, deep-link, webview, exported-component, helper, daemon, and local-IPC hunting classes | \n| `VALIDATION-AND-REPORTING.md` | Phases 3–6 candidate validation, structured output, record verification, and reporting | \n| `report-schema.json` | JSON schema for all three `findings.json` verdicts | \n| `validate-findings.cjs` | Zero-dependency validator for `findings.json` in Phases 4 and 5 | \n| `validate-findings.test.cjs` | Findings-validator tests and producer-compatible fixture checks | \n| `validate-coverage-ledger.cjs` | Zero-dependency validator for `coverage-ledger.json` in Phases 1–5 | \n| `validate-coverage-ledger.test.cjs` | Coverage-ledger validator tests | \n\nInstall the skill with the [Skills CLI](https://skills.sh):\n\n```\nnpx skills add https://github.com/cloudflare/security-audit-skill \\\n  --skill security-audit\n```\n\nUse `--global` for a user-level installation:\n\n```\nnpx skills add https://github.com/cloudflare/security-audit-skill \\\n  --skill security-audit \\\n  --global\n```\n\nRun `npx skills --help` for agent-selection and non-interactive options.\n\nStart your coding agent in (or pointed at) the codebase you want to audit, then ask it to do a security audit:\n\n```\nsecurity audit this codebase\nfind security vulnerabilities in ./src\ndo a security review, output to ~/audits/my-project\n```\n\nThe skill activates automatically when the request matches its trigger (security audit, find vulnerabilities, pen-test the code, etc.). A direct codebase audit or pen-test request uses full audit mode. Security questions and focused vulnerability work use guidance mode unless you request report artifacts. In full audit mode, an unspecified output directory defaults to `~/security-audit-skill/<repo-name>/run-<N>`. The workflow writes inside the target repository only when you explicitly select a directory that version control ignores.\n\n- A coding agent with a model that supports tool use and parallel sub-agents\n- Node.js for the zero-dependency findings and coverage-ledger validators\n- An OS-enforced sandbox for target-controlled builds, tests, processes, browsers, emulators, fuzzers, and fixtures. It must disable external networking, use a sanitized allowlisted environment, enforce resource limits, and allow writes only to assigned scratch paths. Without these controls, the workflow keeps the lead as `needs_validation` instead of executing target code.\n\n- **Only confirm established boundary failures.** Keep a source-grounded blocked lead as`needs_validation` with its exact unresolved fact.\n- **Adversarial validation.** The agent that checks a finding is never the agent that found it.\n- **Severity requires impact.** Likelihood x impact, not deviation from a checklist.\n- **Defense-in-depth gaps are not vulnerabilities.** If Layer A prevents the attack, the absence of Layer B is a hardening note.\n- **Multiple runs improve coverage.** In our test runs, a single run found roughly half of the vulnerabilities that repeated runs found in total.\n\nQuestions, feedback, or comparing notes on AI-driven security tooling: [security-ai-research@cloudflare.com](mailto:security-ai-research@cloudflare.com)\n\nMIT -- see [LICENSE](https://github.com/cloudflare/security-audit-skill/blob/main/LICENSE).", "url": "https://wpnews.pro/news/cloudflare-security-audit-skill", "canonical_source": "https://github.com/cloudflare/security-audit-skill", "published_at": "2026-09-17 04:36:55+00:00", "updated_at": "2026-09-17 04:55:35.720652+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-safety", "developer-tools"], "entities": ["Cloudflare", "Cloudflare/Security-Audit-Skill", "validate-coverage-ledger.cjs", "validate-findings.cjs"], "alternates": {"html": "https://wpnews.pro/news/cloudflare-security-audit-skill", "markdown": "https://wpnews.pro/news/cloudflare-security-audit-skill.md", "text": "https://wpnews.pro/news/cloudflare-security-audit-skill.txt", "jsonld": "https://wpnews.pro/news/cloudflare-security-audit-skill.jsonld"}}