Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/briiirussell/cybersecurity-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/briiirussell/cybersecurity-skills/owasp-audit)<a href="https://agentmods.dev/rules/briiirussell/cybersecurity-skills/owasp-audit"><img src="https://agentmods.dev/badge/rules/briiirussell/cybersecurity-skills/owasp-audit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/briiirussell/cybersecurity-skills/owasp-audit"><img src="https://agentmods.dev/badge/rules/briiirussell/cybersecurity-skills/owasp-audit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00142 | $0.08493 |
| Opus 5 | $0.00071 | $0.04247 |
| Sonnet 5 | $0.00028 | $0.01699 |
| Haiku 4.5 | $0.00014 | $0.00849 |
Grade B, and why
owasp-audit scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Cloud metadata endpointmediumServer-side request forgery
One request to 169.254.169.254 can return temporary IAM credentials.
- Cloud metadata endpoints: AWS `169.254.169.254`, GCP `metadata.google.internal`, ECS `169.254.170.2` Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- **Next.js `headers()` rule merging.** Rules in `next.config.ts` `headers()` match per route and *merge* — a more-specific rule does not override headers it doesn't redeclare. Shipping `frame-ancestors 'none'` + `X-Fram How it starts
The opening of the file, as written. The whole thing — 365 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OWASP Audit — Source Code Security Review
Perform a systematic security audit of application source code against the OWASP Top 10 (2021).
Scope the Audit
- Identify the project's language, framework, and architecture
- Map entry points (routes, API handlers, form processors)
- Identify data flows (user input → processing → storage → output)
- Locate authentication and authorization boundaries
Audit Checklist
Work through each category systematically. For each, grep for known vulnerability patterns, then read flagged files for deeper analysis.
A01: Broken Access Control
- Missing authorization checks on endpoints or routes
- IDOR — user-controlled IDs without ownership verification
- Auth-check ordering. Verify the authorization check runs before any branch that can reveal whether the resource exists, what state it's in, or any other resource-specific metadata. Returning 404 for "not found", 400 for "wrong state", and 401 for "not authenticated" is itself a leak — an attacker enumerates resource IDs and learns states without ever passing the auth gate. Recommended response shape: uniform 404 for everything an unprivileged caller should not see.
- Framework RPC surfaces that don't appear as routes. Server actions and equivalents are publicly-exposed RPCs that file scans miss. Enumerate and audit each one for auth + ownership:
- Next.js: every exported function in a file with
'use server' - Remix / React Router: every
action/loaderexport - tRPC: every procedure
- GraphQL: every resolver
- Rails: non-resource controller actions
- Next.js: every exported function in a file with
- IDOR via foreign keys in mutation payloads. Form posts a foreign-key UUID (
categoryId,projectId,teamId,organizationId) → server validates ownership of the primary record but blindly accepts the FK → ORM relation join later surfaces another tenant's data. Look forformData.get("<id>")/body.<id>passed straight to insert/update without a precedingfindFirst({ where: { id, userId } }). For ORM relation joins (Drizzlewith:, Prismainclude, ActiveRecordincludes), trace whether the join target is filtered by the same tenant/ownership predicate as the parent query. - Missing CSRF protections on state-changing requests
- Role checks only on the frontend, not enforced server-side
- Open redirect via post-auth return-to parameter —
?from=,?next=,?returnTo=,?continue=,?redirect=passed unsanitized toredirect()/Response.redirect(). Restrict to same-origin paths under the expected scope, normalize (new URL(target, "http://localhost").pathname) to defeat traversal like/admin/../foo. Also reject control bytes in the path before redirect: tab/newline/null (\t,\n,\0) — URL parsers strip these and collapse/\tevilinto protocol-relative//evil; null bytes can turn the redirect into a 500. Reject any byte in[\x00-\x1F\x7F], any backslash, and any percent-encoded slash/backslash (%2f,%5c). - Grep for: direct object references, missing auth middleware, user ID from request params,
redirect(.*from,redirect(.*next,redirect(.*returnTo
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 365 lines · 142 tokens per session scan B 0136edc20c0a
owasp-audit is a cursor rule published in the GitHub repository briiirussell/cybersecurity-skills (384 stars, last pushed 3mo ago), licensed MIT. It adds 142 tokens to every session and 8,493 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it B with 2 findings (cloud metadata endpoint, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
clean-code-reviewer
Eliminates technical debt using SOLID, DRY, YAGNI, and Addy Osmani production-grade engineering principles. / TR: SOLID, DRY, YAGNI ve Addy Osmani üretim seviyesi mühendislik ilkeleri ile kod kalitesini denetleyen yetenek.
sweep-benchmarks
Audit xrspatial modules for asv benchmark coverage gaps: missing benchmarks, backend parameterization gaps, unrepresentative inputs, broken or silently-skipped benchmarks.
code-review
BMAD BMM Agent: code-review.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.