Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid API access to Letta server
-
ExploitCraft API request with forged user_id header
-
ExecutionServer trusts self-asserted tenant identity
-
ImpactRead and modify victim tenant's agents, memory, and config
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires that the Letta server accept and trust a client-supplied 'user_id' HTTP header as the tenant/user identity (the default behavior through version 0.16.8, per the referenced dependencies.py identity-resolution logic). The attacker must have network access to the Letta API and enough access to issue API calls (PR:L); they then simply set user_id to a target tenant's ID. Notably, enabling LETTA_SERVER_SECURE does NOT limit this attack - the reporter states the bypass works even with that control on. Limiting factors: the attacker needs working API connectivity to the server and must know or guess a valid target user_id/tenant ID; single-tenant deployments with no other users present little to steal, so real impact concentrates in multi-tenant or shared-instance Letta deployments running 0.16.8 or earlier. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflated one. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scores 8.6 and aligns cleanly with the description: a network-reachable, low-complexity authorization bypass (CWE-639, IDOR via a user-controlled key) requiring only low privilege - a valid API caller - with no user interaction. The impact metrics VC:H/VI:H (confidentiality and integrity high, availability none) match a flaw that lets an attacker read AND modify another tenant's agents, memory, and configuration. A public exploit is confirmed (publicly available exploit code exists, reported by VulnCheck with a Lasso Security write-up), which materially raises real-world risk even though no EPSS score, KEV listing, or SSVC decision data was supplied. The absence of KEV/EPSS data means active in-the-wild exploitation is NOT confirmed and should not be assumed; the signal here is 'exploit code available,' not 'exploitation observed.' One notable aggravator the raw CVSS does not capture: the description states the bypass works 'even with LETTA_SERVER_SECURE enabled,' meaning the primary hardening control does not mitigate it. The main risk-limiting factor is PR:L - the attacker needs some legitimate API access to the Letta server - so exposure is highest for multi-tenant/shared Letta deployments rather than fully single-tenant installs. |
| Exploit ScenarioDerived | An attacker with legitimate low-privilege API access to a shared Letta server sends normal API requests but sets the user_id HTTP header to a victim tenant's identifier. Because the server trusts this self-asserted header for identity, the attacker reads and modifies the victim's agents, stored memory, and configuration across the tenant boundary. Public exploit code for this technique already exists (VulnCheck/Lasso Security). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Cross-tenant impersonation in Letta through 0.16.8 allows an authenticated low-privileged API caller to read and modify another user's agents, memory, and configuration by setting the self-asserted user_id HTTP header to the victim's tenant ID, even when LETTA_SERVER_SECURE is enabled. The server trusts the client-supplied identity key during request resolution, so the bypass requires only API connectivity and a known or guessed target user_id, not credential theft or memory corruption. Publicly available exploit code exists, with no CISA KEV listing confirming active exploitation; this is a genuine high-priority issue for multi-tenant or shared Letta deployments, while single-user instances have little cross-tenant data to expose.
RemediationAI
No vendor-released patch or fixed version is identified in the provided data, so operators should not wait on LETTA_SERVER_SECURE, which the reporter confirms does not block the bypass. The most direct compensating control is to place the Letta API behind an authenticating reverse proxy or API gateway that strips any client-supplied user_id header and injects the tenant identity from a verified session or token; the trade-off is that all ingress must go through that proxy, because direct network access to the Letta server, internal callers, or sidecar traffic would still reach the vulnerable header logic. Restrict the API to trusted networks or VPN and avoid exposing it to the internet until a fix is available; for high-assurance multi-tenant use, run separate Letta instances or credentials per tenant so a forged user_id cannot cross a real trust boundary. If maintaining a fork, change the dependencies.py identity resolution to ignore client-supplied user_id and derive identity only from verified authentication, then test that LETTA_SERVER_SECURE and normal multi-user flows still behave correctly. Monitor API logs for unusual user_id header values or cross-tenant access patterns and review the upstream Letta repository and the VulnCheck advisory for a patched release.
Affected VersionsENISA
Affected Packages
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
Letta (formerly MemGPT) is a Python-based server for building stateful LLM agents, exposing a REST API for agents, memory blocks, and configuration. CWE-639 (Authorization Bypass Through User-Controlled Key) is the root cause: the REST API dependency that resolves the calling identity (letta/server/rest_api/dependencies.py, around line 39 in the referenced commit) accepts a client-supplied user_id header as authoritative instead of deriving the tenant from a verified session or token. The CPE cpe:2.3:a:letta-ai:letta:*:*:*:*:*:*:*:* covers the package broadly, and the reporter states the header-trust behavior is the default through 0.16.8. Because LETTA_SERVER_SECURE does not change this header-trust behavior, operators cannot rely on that flag as a mitigation. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) and the assessed CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) agree that a low-privileged network caller gains high confidentiality and integrity impact, with no availability impact; the attacker still needs API connectivity and a valid target user_id to exploit.
Know when Letta 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable IDOR needing only basic API access (PR:L) and no interaction; attacker both reads and alters another tenant's data (C:H/I:H), with no availability impact (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Letta through 0.16.8 contains an authentication bypass vulnerability that allows API callers to impersonate other users by supplying a self-asserted user_id HTTP header. Attackers can set user_id to another tenant's ID, even with LETTA_SERVER_SECURE enabled, to read and modify that user's agents, memory and configuration.
Technical POC Analysis
CWE-639: Authorization Bypass Through User-Controlled Key.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Letta through version 0.16.8 contains a cross-tenant impersonation vulnerability that lets a low-privileged API caller read and modify another tenant's agents, memory, and configuration. For organizations running multi-tenant or shared Letta deployments, this undermines tenant isolation and can expose sensitive AI conversation data while allowing tampering with customer workflows. Leadership should prioritize this because publicly available exploit code exists and the flaw requires only API connectivity plus a known or guessed user_id, eroding customer trust and compliance posture.
No vendor-released patch identified at time of analysis. Interim mitigations: enforce a trusted reverse proxy or API gateway that strips client-supplied user_id headers and derives identity from a trusted session context; restrict Letta API exposure to trusted networks; segment multi-tenant deployments and enforce tenant isolation; audit and alert on cross-tenant access or header manipulation; disable shared or multi-tenant configurations until a fixed release later than 0.16.8 is available.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Related Vulnerabilities in Letta Authentication and Information Disclosure Flaws
View all 3Improper neutralization of directives in dynamically evaluated code within letta-ai letta 0.16.4 allows remote attackers
Server-side request forgery in letta-ai letta 0.16.4 allows authenticated remote attackers to manipulate ImageContent pa
EUVD-2026-104693
GHSA-8p6h-849r-ww4h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB