Skip to main content

getzep graphiti CVE-2026-90601

| EUVDEUVD-2026-77130 MEDIUM
Improper Authentication (CWE-287)
2026-09-13 VulDB GHSA-rw8x-xfx6-c82h
6.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Discover network-reachable graphiti server port
  2. Delivery
    Send unauthenticated HTTP GET to /episodes/<group_id>
  3. Exploit
    Exfiltrate stored knowledge-graph memory
  4. Execution
    Optionally POST crafted episodes to ingest router
  5. Impact
    Poison LLM application memory

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The graphiti server component (server/graph_service/) must be network-reachable from the attacker - internet exposure is not required, but any network path (cloud VPC, internal LAN) to the listening port suffices. The vulnerable condition is the default state of versions ≤ 0.30.2: both routers are completely unauthenticated out of the box, no opt-in misconfiguration is needed. Exploitation is bounded to the graphiti data plane - reading episode data and writing new or modified episodes. It does not provide OS command execution, access to the underlying Neo4j or OpenAI credentials configured server-side, or privilege escalation beyond the service's own data. Instances isolated behind a firewall or reachable only from trusted application hosts have their exposure significantly reduced.

Impact

The CVSS 4.0 score of 6.9 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L) accurately reflects the technical reality: network-reachable with no prerequisites, but limited to the service's data plane - graph episode reads and writes - with no code execution or OS-level access. The no-authentication condition is unconditional in affected versions, not gated on a misconfiguration. Real-world risk is heavily deployment-topology dependent: graphiti is typically an internal backend component, so network segmentation may naturally restrict exposure. However, instances deployed with internet-facing ports or inside flat cloud VPCs are fully exposed. No KEV listing and no known POC exist, keeping automated mass exploitation unlikely. The patch (PR #1739) was pending merge at time of disclosure, so all deployed instances of ≤ 0.30.2 without manual patching remain vulnerable. EPSS data was not provided; given the niche deployment footprint, broad scanning-based exploitation is considered low probability.

Exploit ScenarioDerived

An attacker who can reach the graphiti server on its listening port sends a plain HTTP GET to /episodes/<group_id>?last_n=100 with no Authorization header and receives stored knowledge-graph episodes in the response. To corrupt or poison the graph, the attacker POSTs crafted episode data to the ingest router, silently modifying the LLM application's memory. No credentials, special tooling, or prior reconnaissance beyond port discovery is required.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 13, 2026

The graphiti FastAPI-based graph memory REST API (getzep/graphiti ≤ 0.30.2) shipped its ingest and retrieve routers with zero authentication - no API key, no token, no session check of any kind. Any unauthenticated remote caller with network access to the service can read stored knowledge-graph episodes or inject and overwrite graph data by sending ordinary HTTP requests. No public exploit code has been identified, but the barrier to exploitation is effectively zero: the attack requires only HTTP client access and knowledge of endpoint paths. No KEV listing at time of analysis.

RemediationAI

Apply the fix from GitHub PR #1739 (https://github.com/getzep/graphiti/pull/1739) once merged and a patched release is published - no confirmed patched release version was available at time of filing. Operators who cannot wait for a release should cherry-pick the PR diff manually: add server/graph_service/auth.py, update Settings to include api_key, and apply dependencies=[Depends(require_api_key)] to both ingest.router and retrieve.router. Set a strong random value for the api_key environment variable. As an immediate compensating control, restrict TCP access to the graphiti server port to trusted source IPs using host firewall rules or security groups - this eliminates network exposure without requiring code changes. Deploying a reverse proxy (e.g., nginx) that enforces its own Bearer token check is an alternative workaround. Note that after patching, if api_key is left unconfigured (None), the service fails closed and rejects all requests - operators must explicitly configure the key.

Affected VersionsENISA

graphiti 0.30.0
graphiti 0.30.1
graphiti 0.30.2

Affected Packages

euvd graphiti no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

graphiti is a Python FastAPI service (cpe:2.3:a:getzep:graphiti:*:*:*:*:*:*:*:*) that exposes a REST API for storing and querying temporal knowledge graphs used as memory in LLM applications. The vulnerability (CWE-287, Improper Authentication) stems from both application routers - server/graph_service/routers/ingest.py and server/graph_service/routers/retrieve.py - being instantiated as bare APIRouter() objects with no FastAPI dependency injection for authentication. The PR diff confirms no auth.py module existed prior to the fix; the service had no concept of caller identity. The remediation introduces a fail-closed require_api_key dependency using secrets.compare_digest for timing-safe Bearer token validation, applied to both routers via dependencies=[Depends(require_api_key)].

Know when Graphiti 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

Vendor (VulDB) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.3 HIGH

No authentication on a network API means AV:N/PR:N/AC:L; impact limited to service data plane with no scope change, so S:U and C/I/A all Low.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability was found in getzep graphiti up to 0.30.2. Affected is an unknown function of the file server/graph_service/main.py of the component REST API. The manipulation results in improper authentication. The attack can be launched remotely. The pull request to fix this issue awaits acceptance.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Low
niche AI graph memory library, limited enterprise footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy