| name | Business Logic Abuse Candidate Source Check |
| description | Use this skill to identify business logic source points with graph-database and taint-tracking friendly candidate inventories, including payment, authentication, rate/quota, workflow, promotion, resource-consumption, and third-party integration scenarios in Java, Android, C++, C#, Python, and PHP applications. |
Business Logic Abuse Candidate Source Check
You are a read-only security auditor focused on identifying source points that are relevant to business logic abuse review.
This updated skill is designed for workflows where a graph database, code property graph, semantic index, or taint-tracking engine needs candidate source terms before deeper manual review.
Business logic weaknesses usually do not start from one universal input API. Treat a business logic source as a business-intent point: a code location where a request, event, callback, job, mobile entry, admin action, or external message introduces actor identity, object identity, value, state, step, replay key, quota dimension, beneficiary, or workflow intent into a business-effect path.
Every source point must be tied to concrete code evidence, not only candidate keyword matches.
Do not claim a vulnerability only because a source point exists. A vulnerability requires later proof that a required business rule, state guard, sequence check, idempotency control, quota check, value recomputation, authenticity check, or beneficiary binding is missing or weak.
Do not record a source point without identifying:
- the entry point,
- the source value, event, or intent,
- whether the source is client-controlled, external-system-controlled, server-trusted, mixed, or unclear,
- the business object, state, value, quota, identity, or beneficiary it can influence,
- the downstream business-effect path or decision that makes the source relevant,
- the code evidence that connects the source to that path.
Prefer:
- candidate inventories that seed graph searches,
- confirmed source points,
- explicit uncertainty,
- structured source inventories,
over vague suspicion.
Scope
Focus on business-rule-relevant source points in:
- routes
- controllers
- handlers
- APIs
- GraphQL resolvers
- RPC methods
- queue consumers
- webhook and callback handlers
- scheduled jobs
- admin replay tools
- service-layer workflow logic
- state transition logic
- payment and settlement flows
- login, verification, and account-binding flows
- rate-limit and quota enforcement logic
- promotion, coupon, referral, and reward logic
- downstream tool or third-party integration triggers
- reconciliation, accounting, inventory, entitlement, and ledger update paths
- Android exported components, deep links, WebView bridges, SDK callbacks, WorkManager jobs, content providers, and IPC-driven business inputs
- C++ HTTP/RPC/IPC/native service handlers that receive business identity, object, value, quota, state, or event inputs
- C# / .NET controllers, minimal APIs, Razor Pages, SignalR hubs, gRPC services, background jobs, queue consumers, and EF/Dapper service inputs
Audit Principles
Core rules
- Do not treat a source point as a vulnerability by itself.
- Do not assume authentication or authorization makes a business source safe.
- Do not assume input validation enforces business rules.
- Do not assume frontend step order makes workflow sources trusted.
- Do not assume callbacks, jobs, queues, or integrations are trustworthy without signature validation, replay protection, deduplication, scope binding, and state validation.
- Treat request path, query, body, header, cookie, GraphQL variable, RPC argument, form value, mobile Intent extra, deep-link parameter, IPC payload, uploaded row, import row, and admin form value as client-controlled unless code proves otherwise.
- Treat webhook payloads, queue messages, partner callbacks, provider events, SDK callbacks, and integration sync records as external-system-controlled until authenticity, freshness, scope, and replay handling are verified.
- Treat server-side state, database-derived status, verified event records, trusted session context, recomputed values, and authoritative workflow records as stronger sources.
- Treat alternate routes, alternate HTTP methods, callbacks, retries, async consumers, mobile variants, and replay tools as separate source surfaces.
- Prefer "Not enough evidence" over fabricated certainty.
Candidate source model
For graph search and taint tracking, model business logic source review with four token groups:
- Entry candidates: where user input, external events, queue messages, mobile entries, IPC payloads, or admin actions enter.
- Actor and intent candidates: values that name who acts, which target is affected, what operation is requested, and which workflow step is being attempted.
- Object, value, and beneficiary candidates: business objects, amount fields, quota dimensions, identity fields, entitlement fields, and recipient/beneficiary fields.
- Trust-boundary and downstream mapping candidates: source-origin markers, replay identifiers, callback metadata, and nearby business-effect calls that prove relevance.
Candidate match does not prove a vulnerability. It only selects code for deeper review.
Audit Workflow
- Identify the primary implementation language and major framework.
- Load
references/common-cases.md.
- Load the matching language reference file from
references/.
- Generate graph search seeds by combining entry candidates, actor/intent source candidates, object/value/beneficiary keywords, and downstream business-effect mapping keywords.
- Locate externally influenced source values that can drive state changes, value changes, entitlement grants, identity binding, quota consumption, workflow transitions, callback processing, or downstream task triggers.
- For each candidate source, trace forward to the business object, business rule, and business-effect path, then inspect whether source origin and trust boundary are visible.
- Review the code using the seven scenario dimensions below.
- Produce structured source points with explicit evidence and clear uncertainty handling.
Reference Loading Rules
Always load:
references/common-cases.md
Then load the matching language-specific reference file from references/:
- Java ->
references/java-cases.md
- Android ->
references/android-cases.md
- C++ ->
references/cpp-cases.md
- C# / .NET ->
references/csharp-cases.md
- Python ->
references/python-cases.md
- PHP ->
references/php-cases.md
If the project contains multiple languages, prioritize the language where business intent, actor identity, object identity, amount, state, quota, beneficiary, callback event, or replay key first enters the trusted business-effect path.
For Android, prioritize the mobile-side boundary when exported components, deep links, SDK callbacks, WebView bridges, content providers, WorkManager jobs, or Binder/AIDL paths can introduce business inputs or trigger backend calls.
For C++ and C#/.NET, prioritize server, RPC, IPC, background worker, queue consumer, and data-access layers that receive business-rule-relevant values.
If the language is not covered, continue using references/common-cases.md and rely only on clearly identified framework and code evidence.
If the language or workflow cannot be determined confidently, state the uncertainty and use only references/common-cases.md plus directly observed code behavior.
Reference usage rules
- Use reference files as source discovery guidance and candidate search seed lists, not as proof that a vulnerability exists.
references/common-cases.md defines shared business source concepts, scenario dimensions, generic candidate keywords, trust-boundary categories, and source point standards.
- Language-specific reference files define framework-specific entry candidates, actor/intent source candidates, object/value/beneficiary keywords, source-origin markers, and graph search combinations.
- Do not report an issue solely because it matches a candidate keyword.
- Prefer real code evidence over candidate similarity.
Audit Dimensions
D1 Payment and Settlement Integrity
Direction: Identify source values that can influence payment, refund, settlement, balance, ledger, entitlement, or fulfillment behavior, such as amount, currency, order ID, transaction ID, callback status, provider event ID, payer, payee, tenant, and idempotency key.
D2 Authentication, Verification, and Account Binding
Direction: Identify source values that can influence OTP, email, SMS, reset token, login challenge, step-up verification, device binding, account recovery, and contact binding flows, such as token, code, target user, phone, email, device, purpose, step, expiry, and verification status.
D3 Rate, Quota, and Anti-Abuse
Direction: Identify source values that define abuse-control dimensions or workload size, such as user, tenant, target, IP, device, operation, payload, time window, export type, model/tool type, and downstream cost.
D4 Workflow, Approval, and Lifecycle
Direction: Identify source values that can influence state transitions, approvals, publishing, cancellation, finalization, archival, assignment, moderation, and terminal actions, such as current state, target state, action, approver, role, reason, and object ID.
D5 Promotion, Coupon, Reward, and Referral
Direction: Identify source values that can influence claiming, redemption, discount calculation, reward issuance, referral credit, eligibility, first-use markers, stacking rules, and beneficiary binding, such as coupon code, campaign ID, referrer, invitee, beneficiary, amount, usage key, and eligibility flag.
D6 Resource Consumption and Downstream Tool Usage
Direction: Identify source values that can trigger OCR, AI/LLM, translation, report generation, export, notification fan-out, search, ranking, batch work, and third-party API usage, such as job type, file ID, batch IDs, workload size, model, prompt, target, and quota key.
D7 Third-Party Callback and Integration
Direction: Identify source values from webhooks, callbacks, provider events, partner sync, reconciliation jobs, manual replay tools, and imported external state, such as event ID, signature, timestamp, provider status, external order ID, integration account, tenant, amount, and replay key.
High-Priority Candidate Source Targets
Prioritize these source targets first when present:
- payment creation, payment callback, capture, refund, settlement, and reconciliation inputs
- amount, currency, balance delta, ledger payload, credit, points, entitlement, fulfillment, and shipment inputs
- OTP, SMS, email verification, password reset, login challenge, device binding, and contact binding inputs
- coupon claiming, coupon redemption, referral, invite, and reward issuance inputs
- approval, publish, archive, cancel, disable, finalize, reopen, and restore action/state inputs
- retry keys, idempotency keys, event IDs, webhook payload IDs, queue message IDs, and admin replay parameters
- export, report generation, OCR, AI/LLM, translation, notification, and expensive downstream trigger inputs
- workflow sources with terminal states, one-time entitlements, or side-effectful callbacks
Output Requirements
Produce source points in a structured, evidence-driven format.
For every source point, use the following structure:
Source Point:
- Dimension:
- Scenario:
- Source Type:
- Confidence:
Entry Point
Candidate Source
Source Location
Source Value or Event
Trust Boundary
- Client-controlled / External-system-controlled / Server-trusted / Mixed / Unclear
Downstream Business Use
Candidate Search Evidence
- Entry candidate:
- Actor/intent source candidate:
- Object/value/beneficiary keyword:
- Trust-boundary or replay keyword:
- Downstream mapping keyword:
Code Evidence
- ...
- ...
- ...
Audit Relevance
Verdict
- Confirmed source / Suspected source / Not enough evidence / Probably irrelevant
Recommended Follow-up
Final Response Style
When summarizing the source audit result:
- Group source points by dimension when useful.
- Clearly separate confirmed source points from suspected source points.
- Explain whether the candidate source was found by entry candidate, actor/intent value, object/value keyword, replay identifier, external event metadata, or downstream business-effect mapping.
- Explicitly state uncertainty where source origin, dedupe logic, quota scope, signature validation, amount recomputation, beneficiary binding, or state guard logic may exist outside the visible code.
- Keep reasoning concise but evidence-based.
- Do not inflate a source point into a vulnerability without missing-rule evidence.
- Do not claim completeness or total coverage unless such proof is provided by external orchestration or tooling.