FixVibe

// descoberta / holofote

Introspection do GraphQL exposto

Introspection em produção entrega ao atacante todo o seu sistema de tipos.

A pegada

GraphQL introspection is the spec's most developer-friendly feature and one of its most defender-unfriendly defaults. Send a query asking the server to describe itself, and a fully-introspected GraphQL endpoint dutifully returns every type, every field name and type, every argument, and (in many configs) every directive comment. It's how GraphiQL, Apollo Sandbox, and every modern GraphQL client tool work. It's also how attackers map your API in seconds. Apollo Server 4 disables introspection by default in production, but plenty of older deployments and self-rolled GraphQL servers still ship with it on, and the line between 'we want devs to use the explorer' and 'we exposed the entire data model to the internet' is one configuration flag.

Como funciona

A `__schema` query — `{ __schema { types { name fields { name type { name } } } } }` — returns the complete type system. From that single response, the attacker reconstructs every query, mutation, subscription, the arguments each takes, and the relationships between types. Tools like graphql-voyager render the result as an interactive map. Combined with permissive resolvers (no per-query authorization), introspection is the input that makes targeted enumeration trivial. Even with strict authorization, knowing internal types like `_AdminInternal` or fields like `mfaSecret` is information the attacker shouldn't have.

O raio de impacto

Recon impact dominates — knowing the schema converts blind probing into surgical queries. Combined with authorization bugs (resolver-level IDOR, missing field-level auth), introspection is the recipe for efficient mass data extraction. Schema disclosure also reveals product roadmap details (unreleased fields and types) and internal naming conventions that may inform social engineering.

// what fixvibe checks

What FixVibe checks

FixVibe maps externally visible application surfaces with passive signals and safe metadata checks. Reports summarize the exposed surface and remediation priorities. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

Defesas blindadas

Disable introspection in production. Apollo Server 4: `introspection: false` in config (already the default for production builds). Yoga: `useDisableIntrospection` plugin. Hot Chocolate (.NET): `.AddIntrospection(false)`. Hasura: set `HASURA_GRAPHQL_ENABLE_TELEMETRY=false` plus the per-role schema introspection toggle. Don't rely on rate-limiting introspection — one query is enough. For developer access, host a documentation site that's authenticated separately, or use schema diffing in CI to detect changes without exposing the full schema at runtime. As a defense-in-depth layer, also disable field-suggestion responses (most servers offer a flag for 'Did you mean X?' messages) since those leak schema details even when introspection is off.

// rode no seu próprio app

Continue publicando enquanto o FixVibe vigia.

O FixVibe pressiona a superfície pública do seu app do jeito que um atacante faria — sem agente, sem instalação, sem cartão. Continuamos pesquisando novos padrões de vulnerabilidade e transformando isso em checks práticos e fixes prontos para Cursor, Claude e Copilot.

Descoberta
129
testes nessa categoria
módulos
12
checks dedicados de descoberta
todo scan
384+
testes em todas as categorias
  • Grátis — sem cartão, sem instalação, sem ping de Slack
  • Só colar uma URL — a gente crawla, sonda e reporta
  • Achados classificados por severidade, deduplicados no sinal
  • Prompts de fix atuais, prontos para colar no Cursor, Claude, Copilot
Rodar um scan grátis

// checks atuais · fixes práticos · publique com confiança

Introspection do GraphQL exposto — Holofote de Vulnerabilidade | FixVibe · FixVibe