{"answers":{"affected":"3 open source packages ship an affected version, including graphiti-core. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-32247 in the wild and no public exploit code.","fix":"Upgrade graphiti-core to 0.28.2 or later.","what":"CVE-2026-32247 is a high-severity code injection vulnerability in getzep graphiti, published on 12 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-32247 and fix it if it is affected.\n\nWhat it is: CVE-2026-32247 is a high-severity code injection vulnerability in getzep graphiti, published on 12 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-32247 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- graphiti-core (PyPI): affected all versions; fixed in 0.28.2\n- graphiti-core (PyPI): affected all versions; fixed in 0.28.2\n- graphiti-core (PyPI): affected all versions; fixed in 0.28.2\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-32247/ (Markdown: https://insights.sbomify.com/CVE-2026-32247/index.md)","id":"CVE-2026-32247","markdown":"https://insights.sbomify.com/CVE-2026-32247/index.md","name":"CVE-2026-32247","record":{"aliases":["GHSA-gg5m-55jj-8m5g","PYSEC-2026-2504"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution","data_read","data_modify"],"network_reachable":"yes","non_default_config":false,"product_category":"Graphiti temporal graph framework","requires_auth":"low_privilege","summary":"Attackers can execute arbitrary Cypher queries via unsanitized node labels in search filters, potentially compromising data integrity and confidentiality.","user_interaction":"not_required","vuln_class":"code_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"graphiti","vendor":"getzep"}],"cvss":{"score":8.1,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-943","name":"Improper Neutralization of Special Elements in Data Query Logic"}],"description":"Graphiti is a framework for building and querying temporal context graphs for AI agents. Graphiti versions before 0.28.2 contained a Cypher injection vulnerability in shared search-filter construction for non-Kuzu backends. Attacker-controlled label values supplied through SearchFilters.node_labels were concatenated directly into Cypher label expressions without validation. In MCP deployments, this was exploitable not only through direct untrusted access to the Graphiti MCP server, but also through prompt injection against an LLM client that could be induced to call search_nodes with attacker-controlled entity_types values. The MCP server mapped entity_types to SearchFilters.node_labels, which then reached the vulnerable Cypher construction path. Affected backends included Neo4j, FalkorDB, and Neptune. Kuzu was not affected by the label-injection issue because it used parameterized label handling rather than string-interpolated Cypher labels. This issue was mitigated in 0.28.2.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":"2026-04-29","github_poc":1,"max_poc_stars":2,"metasploit":0,"nuclei":0,"refs":[{"date":"2026-04-29T21:16:35Z","kind":"github_poc","ref":"https://github.com/romain-deperne/CVE-2026-32247","stars":2,"title":"Cypher injection in Graphiti via unsanitized node_labels — CVE-2026-32247 / CVSS 8.1"}],"tier":"poc_unverified"},"has_fix":true,"headline":"Graphiti vulnerable to Cypher Injection via unsanitized node_labels in search filters","id":"CVE-2026-32247","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"code_injection","year":"2026"},"n_packages":3,"n_references":4,"next":{"headline":"Parse Server: Account takeover via operator injection in authentication data identifier","id":"CVE-2026-32248"},"packages":[{"ecosystem":"PyPI","fixed":["0.28.2"],"introduced":["0"],"last_affected":[],"package":"graphiti-core","purl":null,"source":"GHSA-gg5m-55jj-8m5g"},{"ecosystem":"PyPI","fixed":["0.28.2"],"introduced":["0"],"last_affected":[],"package":"graphiti-core","purl":"pkg:pypi/graphiti-core","source":"GHSA-gg5m-55jj-8m5g"},{"ecosystem":"PyPI","fixed":["0.28.2"],"introduced":["0"],"last_affected":[],"package":"graphiti-core","purl":"pkg:pypi/graphiti-core","source":"PYSEC-2026-2504"}],"prev":{"headline":"Tinyauth vulnerable to TOTP/2FA bypass via OIDC authorize endpoint","id":"CVE-2026-32246"},"products":["graphiti"],"published":"2026-03-12","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"},{"class":"open","licence":"CC0","name":"PoC-in-GitHub"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-03-13","vendors":["getzep"]},"summary":"Attackers can execute arbitrary Cypher queries via unsanitized node labels in search filters, potentially compromising data integrity and confidentiality.","url":"https://insights.sbomify.com/CVE-2026-32247/"}