Flexible GraphRAG: Cypher/Graph Injection via broken string-escaping in FalkorDB adapter (_escape()) - full graph wipe from ingested-document content
- Product
- Flexible GraphRAG
- CVE
- CVE-2026-114510
- Affected
- flexible-graphrag >= 0.6.0, < 0.8.2
- Fixed in
- 0.8.2
Last verified against sources: October 27, 2026
Am I affected?
Flexible GraphRAG: affected flexible-graphrag >= 0.6.0, < 0.8.2. Fixed in 0.8.2.
- Check your version: run
pip show flexible-graphrag. Versions >= 0.6.0, < 0.8.2 of flexible-graphrag are affected. [1]
What to do now
- Upgrade to the fixed version: run
pip install --upgrade "flexible-graphrag>=0.8.2"(first patched version 0.8.2). [1] - Workaround before upgrading: use GRAPH_BACKEND=llamaindex with FalkorDB, or another graph database. [1]
General practice, not from the source: if the affected software could read tokens or credentials, rotate them after upgrading; pin versions and review changes before updating tools your agents run.
What happened
- The escaping order is backwards, exactly like the classic HTML double-escape bug. [1]
- node/rel objects are LLM-extracted entities and relationships derived from ingested document content (the whole point of this GraphRAG pipeline). [1]
- Affected configuration: GRAPH_BACKEND=langchain with GRAPH_DB=falkordb only. [1]
Impact
- Full Cypher clause injection into lc_graph.query() calls that run with no query parameterization and no read-only restriction visible in this adapter. [1]
- Appending a second clause (MATCH (m) DETACH DELETE m) to the query wipes every node and relationship in the graph in a single call. [1]
- The same primitive can be adapted to exfiltrate data (e.g. RETURN other nodes' properties back through a field the caller reads) or tamper with existing records, depending on what the calling code surfaces to the end user/LLM. [1]
What was done
- Fixed in 0.8.2: values are passed as query parameters and labels/relationship types/property keys are stripped of backticks. [1]
- Maintainer note: confirmed exploitable against a live FalkorDB. [1]
- FalkorDB requires a WITH between MERGE and MATCH, so the payload needs "WITH 1 AS x" added; with it, the payload deleted every node in the graph. [1]
Sources
- GHSA-vqrg-773h-4wxc — GitHub Advisory Database
Every statement above was checked against these sources before publishing. Spotted an error? Tell us and we will correct it with a dated note.
Share advisory brief with your team
Copy a plain-text summary for Slack, GitHub issues, or team security channels.
[CVE-2026-114510] Flexible GraphRAG: Cypher/Graph Injection via broken string-escaping in FalkorDB adapter (_escape()) - full graph wipe from ingested-document content
Product: Flexible GraphRAG | Affected: flexible-graphrag >= 0.6.0, < 0.8.2 | Fixed in: 0.8.2
Summary: The escaping order is backwards, exactly like the classic HTML double-escape bug.
Source & remediation on AgentArmorHQ: https://agentarmorhq.com/incidents/2026/10/cve-2026-114510-flexible-graphragCorrections
Report an error or request a correction. We review requests within 5 business days and add a dated correction note.
Discussions for CVE-2026-114510
Ask questions or share configuration tips. Governed by our Community Rules & Terms.
No posts match this filter yet.
Be the first to ask a question or share a working tip.