// application security

GraphQL Security Testing

GraphQL moves authorization into resolvers and opens new denial-of-service angles. We test the schema, the resolvers and the query engine for the issues unique to GraphQL.

What is GraphQL Security Testing?

GraphQL hands the client a flexible query language and moves authorization deep into resolvers — a combination that creates both access-control gaps and new denial-of-service angles. We test the schema, the resolvers and the cost controls together.

GraphQL's flexibility is its risk: one endpoint, arbitrary client-shaped queries, and authorization pushed into individual resolvers where a single missed check leaks data. Add the ability to request enormous nested structures and batch many operations at once, and you have both an access-control surface and a denial-of-service surface that REST simply doesn't. We test the schema, the resolvers and the cost controls as one system.

Teams often adopt GraphQL for developer speed and only later discover its security model is different in kind, not degree. REST spreads authorization across many endpoints you can reason about individually; GraphQL collapses it into resolvers where one oversight exposes an entire object graph. Testing therefore has to think in graphs — following relationships an attacker can traverse — rather than checking endpoints one at a time.

GraphQL Security Testing is a manual, exploit-driven assessment: real people attacking your target the way an adversary would, then proving each finding with a working proof of concept. It is not an automated scan with a logo on it — the point is to find and demonstrate the issues that actually put you at risk, and hand your team a clear plan to fix them.

Why it matters

Applications are the most-attacked surface on the internet, and a single exploitable flaw can expose your entire customer base. Scanners catch the obvious; the damaging bugs live in logic and authorization, where only manual testing reaches them.

A graphql security testing engagement replaces guesswork with evidence. Instead of hoping your controls hold, you get a ranked, reproducible picture of where they don’t — before someone hostile finds the same gaps.

Industries & use cases

GraphQL testing matters for API-first SaaS, mobile backends and any platform that adopted GraphQL for developer velocity without hardening resolver-level authorization — a common gap in fast-moving product teams.

What we test

Manual, exploit-driven coverage focused on real impact — not scanner noise.

  • Introspection and schema exposure
  • Deeply nested query denial of service
  • Field- and object-level authorization gaps
  • Alias and batching-based abuse
  • Injection through arguments
  • Rate-limit and cost-control bypass

Signs you should run a graphql security testing

If any of these apply, testing is overdue.

  • You expose a GraphQL API to clients or partners
  • Authorization lives in resolvers written by different teams
  • You have no query depth or cost limiting
  • You migrated from REST without re-testing authorization
  • You want introspection risk assessed honestly, not over-flagged

Common vulnerabilities we find

The issues that show up again and again in graphql security testing — and the ones that actually get exploited.

Field-level authorization gaps

A single unprotected field or resolver leaks data the top-level query was supposed to restrict.

Nested-query denial of service

Deeply nested or recursive queries exhaust the server without any authentication.

Batching & alias abuse

Aliased or batched operations bypass rate limits and brute-force protections.

Authorization bypass via node/global IDs

Guessable or decodable global identifiers let a query fetch objects it should never reach.

Missing query cost limits

No depth or complexity limiting lets a single request exhaust CPU, memory or the database.

Mutation authorization gaps

Write operations that skip the ownership checks their read counterparts enforce.

Information disclosure via errors

Verbose resolver errors leaking schema, stack traces or data.

Denial of service via aliases

Many aliased operations in one request multiplying server load.

Example attack chain

Real impact rarely comes from one bug — it comes from chaining several. A representative example:

Introspection was disabled, but verbose errors leaked field names. We reconstructed the schema, found a nested relationship that skipped authorization, and pulled private records through a public query — then used aliased batching to brute-force a token past the rate limiter.

Why choose webhook.press

Attacker mindset

We’re offensive security people who also build the free tools bug-bounty hunters use daily. We test the way real adversaries do — and prove it.

No scanner theatre

You get findings a human exploited and verified, ranked by real business risk — not an unfiltered tool dump padded to look thorough.

Fixed price, free retest

A clear quote after scoping, a report your team and auditors can use, and a free retest to confirm the fixes hold.

Our methodology

A structured, transparent process aligned to OWASP and PTES — with a named point of contact throughout.

01

Scoping & rules of engagement

We agree the exact targets, depth, timing and constraints for your graphql security testing, and set clear rules of engagement so testing is safe and predictable.

02

Reconnaissance & mapping

We enumerate the full attack surface — endpoints, roles, technologies and trust boundaries — and threat-model where an attacker would focus.

03

Manual testing & exploitation

We attack by hand, verifying and chaining weaknesses into real impact. Automated tooling supports coverage; humans find the logic and authorization bugs it can’t.

04

Analysis & risk rating

Each finding is validated, rated by real business risk rather than raw scanner severity, and de-duplicated so you get signal, not noise.

05

Reporting

You receive an executive summary for leadership and a technical section with reproducible PoCs, evidence and concrete, stack-specific remediation.

06

Free retest

After you remediate, we re-test the closed findings to confirm they are actually fixed — at no extra cost.

What you get

🧾

Reproducible PoCs

Every finding ships with a working proof and step-by-step reproduction your engineers can replay and verify.

📌

Risk-ranked findings

Prioritised by real business impact, so you fix what matters first instead of drowning in low-severity noise.

🛠️

Actionable remediation

Concrete, stack-specific fixes and guidance — not generic “apply best practice” filler.

🔁

Free retest

We re-check the closed findings after remediation and confirm they’re resolved.

The report is written for two audiences at once: an executive summary that a non-technical stakeholder can act on, and a detailed technical section — findings, evidence, CVSS and reproduction — that your developers and auditors can use directly.

Manual testing, not just a scan

Automated scanners are fast and useful for coverage, but they only find patterns they already know, and they flood you with false positives. They cannot understand your business logic, chain several small issues into a breach, or tell you which alert actually matters. Our graphql security testing is led by experienced testers who exploit findings by hand and rank them by the damage they’d really do — the difference between a 300-page tool dump and a short list of things worth fixing.

Standards & compliance

Our graphql security testing reports are written to support the frameworks your auditors and customers care about — including SOC 2, ISO 27001, PCI DSS, HIPAA, GDPR, and the EU’s NIS2 and DORA. Each engagement produces clear, independent evidence of testing with scope, methodology and findings documented the way assessors expect, so the same test both hardens your systems and helps satisfy your obligations.

Frameworks we follow

Recognised methodologies, adapted to your target — never a rigid checklist.

  • OWASP — Web Security Testing Guide, ASVS and the API Security Top 10
  • PTES — the Penetration Testing Execution Standard
  • NIST SP 800-115 — technical guide to security testing
  • OSSTMM — Open Source Security Testing Methodology Manual
  • MITRE ATT&CK — to frame real-world adversary techniques

FAQ

Q

Is introspection being enabled a real bug?

Not by itself — it depends on context. We calibrate severity honestly instead of flagging every enabled introspection as critical.

Q

Apollo, Hasura, custom?

All of them. We adapt to your server and its authorization model.

Q

Do you test with introspection disabled?

Yes — we reconstruct the schema from error messages and field suggestions, then test authorization and cost the same way an attacker would.

Q

Apollo, Hasura or custom servers?

All of them — we adapt to your server and its authorization model.

Q

Do you test mutations as well as queries?

Yes — mutations frequently miss the ownership checks queries have, so they're a priority.

Q

Do you assess query cost controls?

Yes — depth, complexity and rate limiting, since GraphQL's flexibility is also a DoS surface.

Q

How long does a graphql security testing take?

Most focused engagements run one to two weeks depending on scope; we agree the exact timeline during scoping.

Q

Is a retest included?

Yes — after you remediate, we re-check the closed findings to confirm they’re fixed, at no extra cost.

Q

How do you price it?

Per engagement, based on scope and depth — you get a fixed quote after a short scoping call. No cookie-cutter packages.

Why teams trust our graphql security testing

Aligned to recognised standards

Testing follows OWASP, PTES, NIST SP 800-115 and MITRE ATT&CK, and reports support SOC 2, ISO 27001, PCI DSS, HIPAA, GDPR, NIS2 and DORA.

Every engagement includes

Reproducible PoCs, risk-ranked findings, concrete remediation, a named point of contact, a free retest, and a summary letter of attestation.

Confidential by default

Work is covered by an NDA, scoped with clear rules of engagement, and data is handled with care throughout — including residency requirements.

Sample report available on request — see our reporting format and depth before you commit. Ask for a sample →

Get a quote for GraphQL Security Testing

Tell us about the target — we’ll come back with scope and a fixed price. Manual, exploit-driven testing with reproducible proof and a free retest.

Email us: hi@webhook.press

Get in touch

Tell us what you'd like tested — we'll reply with scope and a fixed quote.