vulns.co
/
mcp by GKData.io

Back to Gadgets

GraphQL node(id) / alias batch

Global IDs, aliases, batch HTTP, and persisted-query hashes let you ask for objects the SPA never linked. Introspection off is not a defense.

Tags: graphql, idor, api, bfla

Typical severity: P2-P3

What it becomes

Relay-style node(id) and aliased batch queries skip the UI's object graph. Same as IDOR, with a nicer query language.

Where to look

  • node(id:)
  • viewer vs user(id:)
  • aliased queries
  • batch JSON arrays
  • subscriptions

Chains

  • IDOR / BOLA: Swap a global ID from account A into a query as account B. Export and search fields are the usual amplifiers.
  • BFLA: Admin mutations still in the schema. The UI hid the button; the schema did not.
  • Rate-limit skip: One HTTP request, hundreds of aliases. Lockout and billing counters that key on request count lose.

Notes

  • clairvoyance and field suggestions reconstruct the schema without introspection.
  • Subscriptions are WebSockets. Auth on the handshake is the whole game.

Back to Gadgets