Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious document content
-
DeliverySubmit document for ingestion
-
ExploitLLM extraction emits payload value
-
ExecutionBroken _escape injects Cypher clause
-
ImpactDETACH DELETE wipes or exfiltrates graph
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Exploitable only when the application runs GRAPH_BACKEND=langchain together with GRAPH_DB=falkordb; the LlamaIndex FalkorDB store is explicitly not affected, and other backends are not in scope. The attacker must get a crafted document ingested into the GraphRAG pipeline and must steer the extraction LLM into producing an entity/relationship id (or node/relationship type) value containing a Cypher payload, which the backwards-ordered _escape() helper then fails to neutralize (it escapes quotes before backslashes, doubling the inserted backslash so the quote terminates the string). Data disclosure specifically requires that the calling code surfaces query results back to the user or LLM; data modification and full-graph deletion do not. Limiting factors that lower real-world risk: the non-default backend configuration, the need for a user/pipeline to actually ingest the attacker's document (UI:R), and the inherent unreliability of indirect prompt injection reliably emitting the exact payload (AC:H). Workaround before upgrading, per the vendor: switch to GRAPH_BACKEND=llamaindex with FalkorDB or use another graph database; the complete fix is upgrading to 0.8.2. |
| Impact | Signals are moderately consistent and point to a real but conditional priority rather than an emergency. The NVD CVSS 3.1 vector (7.1, AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H) treats this as network-reachable but gated by high attack complexity, some privilege, and required user interaction, whereas the GHSA advisory proposes a far higher ~9.0 score using AC:L/PR:N/UI:N - these two scorings conflict materially on complexity, privilege, and interaction, and the NVD vector is the better fit because exploitation depends on steering an LLM extraction step and on a non-default backend configuration. No EPSS score and no KEV listing were provided, so there is no evidence of widespread or active in-the-wild exploitation; absence of EPSS also prevents a probabilistic exploitation estimate. However, exploitation is not merely theoretical: the GHSA contains an executed string-reconstruction PoC and the maintainer explicitly confirmed a working full-graph deletion against a live FalkorDB instance (with a 'WITH 1 AS x' clause added). Technical impact is total (graph data modification, deletion via DETACH DELETE, and disclosure when results are surfaced), but 'automatable' is weak because the chain relies on indirect prompt injection reliably producing a specific payload. The vuln.today decision label 'this_week' aligns with this picture - a confirmed-exploitable, high-impact flaw in a niche product that warrants prompt patching but is not a mass-exploitation emergency. |
| Exploit ScenarioDerived | An attacker plants a document whose text steers the GraphRAG extraction model into emitting an entity id or relationship value containing a Cypher payload (e.g. a trailing quote plus 'WITH 1 AS x MATCH (m) DETACH DELETE m'); when that document is ingested, the broken _escape() helper fails to neutralize the quote and the payload executes as live Cypher. A maintainer-confirmed PoC used this to delete every node in the graph against a live FalkorDB instance; the same primitive can tamper with or exfiltrate graph data when query results are surfaced to the user or LLM. The chain requires getting a document ingested (UI:R) and the non-default GRAPH_BACKEND=langchain plus GRAPH_DB=falkordb configuration, consistent with AC:H. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Cypher injection in Flexible GraphRAG 0.6.0 through 0.8.1 lets attacker-influenced document content reach FalkorDB queries when GRAPH_BACKEND=langchain and GRAPH_DB=falkordb are configured. A crafted ingested document can steer the extraction model into producing malicious entity or relationship values, and the broken _escape() helper fails to neutralize a quote, allowing injected Cypher clauses to modify or delete graph data and, if the calling code surfaces query results to the user or LLM, disclose graph data. The assessed vector is CVSS 3.1 7.1 with AC:H, PR:L and UI:R; the maintainer demonstrated a proof-of-concept against a live FalkorDB instance that deleted every node, and the vendor released 0.8.2 with parameterized queries and backtick stripping.
RemediationAI
Vendor-released patch: upgrade flexible-graphrag to 0.8.2, which passes values as query parameters and strips backticks from labels, relationship types and property keys. The package range is vulnerable from 0.6.0 up to but not including 0.8.2. Before upgrading, the vendor-specified workaround is to use GRAPH_BACKEND=llamaindex with FalkorDB or to use another graph database; this removes exposure by avoiding the affected LangChain FalkorDB adapter, but changes the deployment configuration. The vendor states the complete fix is upgrading to 0.8.2. As a side effect of the fix, entities containing an apostrophe, which were previously dropped, are now stored. Advisory and release details are at https://github.com/stevereiner/flexible-graphrag/security/advisories/GHSA-vqrg-773h-4wxc and https://github.com/stevereiner/flexible-graphrag/releases/tag/v0.8.2.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the LangChain FalkorDB adapter in the Python flexible-graphrag framework, specifically FalkorDBAdapter.add_graph_documents in flexible-graphrag/langchain/graph/pg_store_adapters/falkordb_adapter.py. The root cause is CWE-116 improper encoding/escaping, manifesting as CWE-943 improper neutralization in data query logic: the _escape() helper escapes single quotes before backslashes, so the backslash it inserts before a quote is then doubled, and a trailing quote can terminate the Cypher string literal early. The escaped values are interpolated into Cypher assembled with string formatting at multiple call sites rather than passed as query parameters, and node.type, relationship source/target types and relationship type identifiers are inserted into backtick-quoted positions without escaping. The input reaches this layer as LLM-extracted entities and relationships derived from ingested document content, making this an indirect-prompt-injection-to-query-injection chain. Only the LangChain FalkorDB configuration is affected; the LlamaIndex FalkorDB store is explicitly not affected, and the fix in 0.8.2 passes values as query parameters and strips backticks from labels, relationship types and property keys. The same escape-order mistake was also fixed in the ArangoDB, NebulaGraph and Milvus delete filters, which were keyed on document paths and assessed as lower risk.
Know when Flexible Graphrag gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
AC:H and UI:R because success depends on steering the LLM extraction and on a document being ingested under a non-default config; PR:L for submit access; C/I/A:H from graph disclosure, tampering, and full DETACH DELETE.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Flexible GraphRAG is a Python framework for building graph and retrieval-augmented generation applications across multiple graph, vector, and search backends. From 0.6.0 until 0.8.2, the _escape() helper in flexible-graphrag/langchain/graph/pg_store_adapters/falkordb_adapter.py escapes quotes before backslashes and then interpolates the result into Cypher assembled by FalkorDBAdapter.add_graph_documents, allowing an inserted escape to be doubled and a quote to terminate the string early. When GRAPH_BACKEND=langchain and GRAPH_DB=falkordb are configured, attacker-influenced ingested document content can cause the extraction model to produce malicious entity or relationship values that reach these queries, allowing injected Cypher clauses to modify or delete graph data and, when the calling code surfaces query results to the user or LLM, disclose graph data. Dynamic node and relationship type identifiers are also inserted into backtick-quoted query positions without safe parameterization. The LlamaIndex FalkorDB store is not affected. This issue is fixed in version 0.8.2.
Technical POC Analysis
CWE-116 (Improper Encoding/Escaping of Output); the advisory also maps it to CWE-943 and generalized CWE-89.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-114510 is a high-severity Cypher injection vulnerability in Flexible GraphRAG versions 0.6.0 through 0.8.1, enabling an attacker who can supply malicious documents to manipulate or delete graph data and potentially disclose sensitive information when the FalkorDB backend is used. The issue affects integrity and confidentiality of knowledge graphs, which can undermine trust in AI-driven insights and lead to data loss or exposure.
Apply vendor patch: upgrade to Flexible GraphRAG 0.8.2. If immediate upgrade is not possible, restrict document ingestion to trusted sources, enforce strict input validation on document content, and monitor FalkorDB query logs for suspicious injection patterns.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-108207
GHSA-vqrg-773h-4wxc
NVD
CVE.org
EPSS
Exploit-DB