Cypher injection in Flexible GraphRAG FalkorDB adapter
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
Flexible GraphRAG from 0.6.0 before 0.8.2 has a flaw in the FalkorDB adapter's _escape() helper. It escapes quotes before backslashes, so an inserted escape can be doubled and a quote can end a string early (CWE-116). With GRAPH_BACKEND=langchain and GRAPH_DB=falkordb, attacker-influenced document content can make the extraction model emit values that inject Cypher. An attacker with low privileges and user interaction can modify or delete graph data and, when results reach the user or LLM, disclose it.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| stevereiner | flexible-graphrag | 0.6.0 to before 0.8.2 | 0.8.2 | Patch available | CNA |
| — | flexible-graphrag (PyPI) | 0.6.0 to before 0.8.2 | 0.8.2 | Patch available | GHSA-vqrg-773h-4wxc |
- flexible-graphrag Vendorstevereiner Affected 0.6.0 to before 0.8.2 Fixed in 0.8.2 Patch available CNA
- flexible-graphrag (PyPI) Vendor— Affected 0.6.0 to before 0.8.2 Fixed in 0.8.2 Patch available GHSA-vqrg-773h-4wxc
Remediation
Upgrade the PyPI package flexible-graphrag to version 0.8.2, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
- Fix · CNA flexible-graphrag (stevereiner) Fixed in 0.8.2
- Fix · GHSA-vqrg-773h-4wxc flexible-graphrag (PyPI) Fixed in 0.8.2 Advisory →
Timeline
- 2026-10-22 Threatist record created from CVE-2026-114510
- 2026-10-23 Priority changed: MEDIUM → LOW
- 2026-10-27 Alias added: GHSA-vqrg-773h-4wxc
- 2026-10-30 CISA SSVC decision points changed
References
Other 4
- https://github.com/stevereiner/flexible-graphrag/security/advisories/GHSA-vqrg-773h-4wxc
- https://github.com/stevereiner/flexible-graphrag/commit/9ace8d47e198ce3f15dbf22853e396ab4e9884fa
- https://github.com/stevereiner/flexible-graphrag/releases/tag/v0.8.2
- https://github.com/stevereiner/flexible-graphrag
Sources
- CVE-2026-114510 · CVE Program
- CVE-2026-114510 · NVD
- FIRST EPSS
- GHSA-vqrg-773h-4wxc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences