Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-22014-GraphQL-Persisted-Queries-Injection-via-ID-Manipulation — Proof-of-concept exploit for CVE-2026-22014 demonstrating persisted-query ID manipulation in GraphQL APIs to bypass allowlists and execute arbitrary queries. | Kitploit
Tools/GitHubGitHub/george0papasotiriou/cve-2026-22014-graphql-persisted-queries-injection-via-id-manipulation
Vulnerability AnalysisExploitationWeb Application ExploitationAPI Security TestingWeb SecurityPenetration TestingAPI Security
GitHubgeorge0papasotiriou/cve-2026-22014-graphql-persisted-queries-injection-via-id-manipulation

CVE-2026-22014-GraphQL-Persisted-Queries-Injection-via-ID-Manipulation

Proof-of-concept exploit for CVE-2026-22014 demonstrating persisted-query ID manipulation in GraphQL APIs to bypass allowlists and execute arbitrary queries.

View Repository
71 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-22014 – GraphQL Persisted Queries Injection via ID Manipulation

Program Code (Node.js)

root@kitploit:~
// graphql_persisted.js - Accepts persisted query IDs
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const queries = {
  "abc": "query { user { name } }"
};
app.post('/graphql', graphqlHTTP({
  schema: schema,
  customExecuteFn: (args) => {
    const doc = parse(queries[args.queryId] || args.query);
    return execute(args);
  }
}));

CVE-2026-22014 – GraphQL Persisted Queries Injection via ID Manipulation

Severity: High

Overview

A GraphQL server supports persisted queries but falls back to the provided parameter if the is unknown. An attacker can supply a nonexistent along with an arbitrary GraphQL query, bypassing the intended allowlist of persisted queries.

query
queryId
queryId

Vulnerability Details

  • Type: Access Control Bypass
  • Impact: Execution of arbitrary, potentially expensive or restricted queries.
  • Root Cause: The resolver trusts the client‑provided query when queryId is not found, instead of rejecting the request.

Exploit Demonstration

Start the server and send a mixed payload:

root@kitploit:~
python exploit_persisted_query.py

The server executes the malicious query.

Download Tool