graphql-idor

Detect GraphQL authorization failures enabling IDOR and privilege escalation.

Updated May 14, 2026
One-click install
npx skills add https://github.com/cuongnguyen-git/bug-bounty --skill graphql-idor
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: graphql-idor
Source: https://github.com/cuongnguyen-git/bug-bounty/tree/main/.claude/skills/graphql-idor
Command: npx skills add https://github.com/cuongnguyen-git/bug-bounty --skill graphql-idor

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you detect GraphQL authorization failures where a user can access or mutate data they don’t own, including IDOR-style horizontal privilege escalation and risky client-controlled arguments.

Core Features & Use Cases

  • Introspection probing to learn the available schema and operations while respecting the workflow’s guardrails.
  • Authentication boundary testing to compare unauthenticated, baseline authorized, and cross-user access behavior for queries and mutations.
  • Client-controlled ID argument checks to validate whether parameters like userId or resource IDs are properly constrained server-side.
  • Batch enumeration checks to determine whether a single query leaks data across users.
  • Unauthed mutation attempts to catch overly permissive mutation endpoints.

Quick Start

Run the graphql-idor skill against your in-scope GraphQL endpoint (or a path to your recon/target directory) and provide any required Authorization Bearer header so it can test authorization boundaries and validate suspected IDOR behavior.

Frequently Asked Questions about graphql-idor

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test GraphQL endpoints for IDOR and authorization bypasses?

To test GraphQL endpoints for IDOR and authorization bypasses, POST operations in unauthenticated and authenticated contexts to check introspection, query scoping, mutation ownership, and batch enumeration for unauthorized data leaks.

What is GraphQL IDOR and how does client-controlled privilege escalation work?

GraphQL IDOR is an authorization failure where client-controlled arguments like userId or resource IDs allow users to access or mutate data they don't own. It enables horizontal privilege escalation when servers fail to enforce ownership checks on queries and mutations.

Can I check for unauthenticated GraphQL mutations and batch enumeration vulnerabilities?

Yes, you can check for unauthenticated GraphQL mutations and batch enumeration vulnerabilities by POSTing operations without authorization headers and running single queries to determine if data leaks across multiple users in a single request.

Does GraphQL introspection probing expose authorization failures?

GraphQL introspection probing helps learn available schema and operations, enabling you to map queries and mutations for testing authorization boundaries, client-controlled ID arguments, and unauthenticated mutation attempts.

What do I need to start testing GraphQL authorization boundaries?

To start testing GraphQL authorization boundaries, you need an in-scope /graphql endpoint or recon target directory, plus any required Authorization Bearer header so the testing workflow can compare unauthenticated, baseline authorized, and cross-user access behavior.

When should I not rely on GraphQL IDOR testing approaches?

You should not rely on GraphQL IDOR testing when actual unauthorized data is not returned during operations; findings are only confirmed when real unauthorized data is accessed via queries or mutations with missing server-side ownership constraints.