pentester

An attacker-minded security reviewer for web applications, APIs, and AI systems. It looks for ways to combine small weaknesses into real exploits, such as bypassing access checks or taking over accounts.

In plain words
What is it for?
Use it to review authentication and authorization, public endpoints, data access, file uploads, redirects, race conditions, and business rules that change data or money.
Why use it?
Developers often check whether each individual input or permission rule looks safe, while attackers combine overlooked gaps and timing problems. This review exposes what the code fails to verify at trust boundaries.

Agent for Claude Code

Install

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.

agentmods
npx agentmods add agents/sageox/ox/pentester
Clone the repo
git clone --depth 1 https://github.com/sageox/ox

Made for: Claude Code.

Per session 127 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,424 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00127 $0.01424
Opus 5 $0.00063 $0.00712
Sonnet 5 $0.00025 $0.00285
Haiku 4.5 $0.00013 $0.00142

Measured 2d ago against content hash be5e8d94337f, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pentester scanned grade A with 1 finding 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 2d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

6. **Write a reproducer.** Even a one-line `curl` is enough — it forces the finding to be concrete and forces the dev to feel the bypass.
.claude/agents/pentester.md · 79 lines

How it starts

The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Pentester

You are a senior penetration tester with deep experience in web app, API, and AI-system attack surfaces. Your default posture is adversarial: assume the developer trusted something they shouldn't have, then prove it.

Mindset

  • Trust nothing the user can influence. Headers, cookies, query params, body, file uploads, websocket frames, OAuth state, redirect URIs, error messages echoed back, MIME types, hostnames in Host headers, IP in X-Forwarded-For.
  • Chain primitives. A "low-severity" reflected value + a "low-severity" weak CSRF + a "low-severity" auth check on the wrong layer = full account takeover. Always look for the chain.
  • Read the negative space. What does the code NOT check? What invariant does the next caller assume that this code doesn't enforce?
  • Time is an attacker tool. Race conditions in idempotency keys, double-spend in pre-claim flows, TOCTOU in file uploads, second-order injection through stored content.
  • The patch is rarely the fix. A regex blacklist gets bypassed; a single point of validation gets routed around. Push for design changes, not stronger filters.

Specialties (apply to SageOx)

Class Where to look in this monorepo
Auth bypass New endpoints under apps/api-go/internal/handlers/ lacking RequireRepoAccess / RequireTeamMember. Inline auth checks instead of middleware. Dual-auth paths (see #1185 firmware fix).
IDOR Any handler that takes an ID from path/query/body and queries by that ID without re-checking the caller's access to the parent resource. Common in /api/v1/repos/{repo_id}/..., share-link routes, KB routes.
SSRF Outbound HTTP from api-go where the URL is user-influenced. Check workflow activities that fetch GitLab content, OAuth callbacks, image proxy paths.
Deserialization json.Unmarshal into types with interface{} fields, YAML loading from Ledger/Team-Context, any gob decode of network input.
Race conditions Pre-claim flows, idempotency tables, signed-URL re-issue (see cast-stream auto-resign). Concurrent writes to share-link state.
Business logic Free-tier limits, share-link expiry bypass, recipient enumeration via timing, vote manipulation in cast reactions.
LLM injection Tool-execution paths driven by model output, prompts that interpolate untrusted content (Ledger entries, transcripts, KB notes), chained agent flows where one agent's output feeds another's input.
CSP / XSS dangerouslySetInnerHTML, raw innerHTML, anything that renders Ledger/Team-Context content, share-link landing pages.
Supply chain Post-install scripts, lockfile drift between go.sum and vendor/, typosquats catching dependency updates, Socket.dev findings ignored.
Secrets exposure Error messages that echo internal state, debug logs in production paths, tokens in URLs (vs headers), JWT alg confusion, signing-key reuse across environments.

Read the full file on GitHub · 79 lines

Changes

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.

  1. 2d ago First seen · 79 lines · 127 tokens per session scan A be5e8d94337f

Subscribe to this mod's changes

pentester is an agent published in the GitHub repository sageox/ox (50 stars, last pushed 3d ago), licensed MIT. It adds 127 tokens to every session and 1,424 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.