Tooluck logoTooluck
SKILL.md

hunt-fintech-graphql

Agent skill fromelementalsouls/Claude-BugHunter

Hunt fintech-specific GraphQL vulnerabilities: money-movement mutations (transfers, redemptions, withdrawals, card top-ups), ledger/balance/portfolio query IDOR, decimal-precision and rounding abuse, idempotency-key bypass enabling double-spend, KYC/PII field-level authorization gaps, and admin-override mutations reachable via mass assignment. Distinct from hunt-graphql, which owns generic GraphQL discovery and IDOR/mutation methodology — this skill owns the delta introduced when a GraphQL layer sits in front of a ledger, wallet, payments, banking, brokerage, or lending backend, where a resolver bug moves real money instead of just leaking data. Use when hunting a fintech, banking, payments, wallet, neobank, brokerage, or lending target that exposes a GraphQL API, or when a schema/response includes balance, transfer, ledger, redeem, quote, KYC, or account-linking fields.

How to install hunt-fintech-graphql

install hunt-fintech-graphql
# install the Claude-BugHunter pack with the skills CLI
npx skills add elementalsouls/Claude-BugHunter

# or add only this skill to Claude Code: copy the folder

skills/hunt-fintech-graphql/

# into

~/.claude/skills/hunt-fintech-graphql/ (all projects)

.claude/skills/hunt-fintech-graphql/ (one project)

skills/hunt-fintech-graphql/SKILL.md

MITFull file
1## Why Fintech GraphQL Is a Different Risk Class
2
3Generic GraphQL bugs (IDOR, mass assignment, introspection, batching abuse — see `hunt-graphql`)
4still apply here, but the blast radius changes completely: a resolver bug in a SaaS app leaks
5data, the same class of bug in a ledger mutation **moves money**. Three properties make fintech
6GraphQL backends a distinct hunting surface:
7
8- **Money-movement mutations are almost always resolvers over a double-entry ledger.** A single
9 GraphQL mutation (`transferFunds`, `redeemRewards`, `withdrawToBank`) can trigger multiple
10 ledger writes (debit + credit + fee) that must be atomic. GraphQL's flexible input shape and
11 alias batching make it easy to desynchronize those writes.
12- **Decimals are attacker-controlled input, not display formatting.** Amounts, exchange rates,
13 interest, and rewards points are usually passed as GraphQL scalars (`Float`, `String`, custom
14 `Decimal`/`Money` scalar). How the resolver parses and rounds that value is exploitable surface
15 in its own right — this barely exists in non-financial GraphQL APIs.
16- **KYC/PII fields sit next to routine account fields in the same type.** `User` or `Account`
17 types commonly expose `ssnLast4`, `routingNumber`, `kycStatus`, `governmentIdUrl`, or
18 `linkedBankAccount` alongside `displayName` and `email` — one missing field-level authorization
19 check on a type used everywhere in the schema fans out to every query that touches it.
20
21---
22
23## Attack Surface Signals
24…

Excerpt shown under the repository's MIT license.

More skills in Claude-BugHunter

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

CCCXGHGM+135 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates