Skip to main content

Letta EUVDEUVD-2026-104693

| CVE-2026-77937 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-20 VulnCheck GHSA-8p6h-849r-ww4h
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid API access to Letta server
  2. Exploit
    Craft API request with forged user_id header
  3. Execution
    Server trusts self-asserted tenant identity
  4. Impact
    Read 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).

Monitor Track and reassess. Why: Vendor states no customer action required.
No patch listed yet 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

letta 0 ≤0.16.8

Affected Packages

euvd letta 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

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
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
vuln.today AI 8.1 HIGH

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).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Low
emerging open-source AI agent framework, limited production footprint
Exploit
POC
Public exploit code exists
Data Quality
7 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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
Vendor states no customer action required
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

63
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: +20
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.

Related Vulnerabilities in Letta Authentication and Information Disclosure Flaws

View all 3

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