Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocate reachable MemOS API with auth enabled
-
DeliverySend request omitting X-Internal-Service header
-
Exploitis_internal_request compares None==None, grants scopes:all
-
ExecutionReach admin API-key management endpoints
-
PersistMint master key and per-user keys
-
ImpactPersistent privileged access to all data
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrect comparison
|
| Exploitation Conditions | Exploitation requires the target MemOS deployment to have authentication turned on (AUTH_ENABLED=true) while the undocumented INTERNAL_SERVICE_SECRET environment variable is left unset - this is the exact fail-open state, and because the variable is defaultless and undocumented, the unset condition is likely present unless an operator deliberately configured it. The attacker sends a request that simply omits the X-Internal-Service header, which is trivial. What LIMITS exploitation: if an operator has set INTERNAL_SERVICE_SECRET to any value, the bug does not trigger; the instance's admin/data API must also be network-reachable by the attacker. No authentication, no user interaction, and no special client platform are required beyond the ability to send an HTTP request to the API. |
| Impact | The signals are strongly aligned toward high priority: the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N with VC:H/VI:H/VA:H) describes remote, unauthenticated, no-interaction exploitation yielding full confidentiality, integrity, and availability loss, and the failure mode is a one-line logic bug that any operator can verify against the public source. There is no CISA KEV listing and no EPSS score in the provided data, and I found no published proof-of-concept, so there is no evidence of active exploitation yet - but the bar to weaponize is essentially trivial. A crucial nuance is that exploitability hinges on a configuration state (INTERNAL_SERVICE_SECRET unset while AUTH_ENABLED=true); because that variable is undocumented and defaultless, the vulnerable state is plausibly the common case for operators who enabled auth without ever knowing the secret existed, which is what makes this dangerous rather than theoretical. Given that a successful request mints a master key for persistent admin access, any team running an internet-reachable MemOS instance should treat this as urgent and immediately audit whether the secret is set. The main uncertainty is prevalence of the misconfiguration in the wild, not the severity of the outcome. |
| Exploit ScenarioDerived | An attacker discovers an internet-reachable MemOS instance and sends a normal HTTP request to an admin API-key endpoint without any X-Internal-Service header. Because INTERNAL_SERVICE_SECRET is unset, the middleware treats the request as a trusted internal principal with scopes ['all'], and the attacker calls the key-management API to generate a master key. No proof-of-concept is publicly identified, but the attack requires only a single unauthenticated request and no special tooling given AV:N/AC:L/PR:N/UI:N. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Authentication bypass in MemOS (MemTensor), a memory operating system for LLMs and AI agents, lets an unauthenticated remote attacker impersonate a trusted internal principal with full 'all' scopes. When AUTH_ENABLED=true but the undocumented INTERNAL_SERVICE_SECRET variable is left unset, a null-versus-null comparison in the internal-request check fails open, exposing admin API-key management and all data endpoints. Rated CVSS 4.0 9.3 (critical) by VulnCheck; no public exploit identified at time of analysis, though the flaw is trivially reproducible from the disclosed source.
RemediationAI
No vendor-released patch version was identified at time of analysis; the disclosure is tracked as GitHub issue #2259 (https://github.com/MemTensor/MemOS/issues/2259) rather than a tagged release. The immediate compensating control is to set INTERNAL_SERVICE_SECRET to a strong, high-entropy random value in every deployment where AUTH_ENABLED=true, which closes the None==None fail-open because a request omitting the X-Internal-Service header will no longer match the configured secret; the only side effect is that any legitimate internal service caller must be updated to send the matching header value. As defense in depth until a code fix lands, restrict network exposure of the MemOS API - bind it to localhost or an internal network and place the admin API-key management endpoints behind an authenticated reverse proxy or network ACL - and rotate/revoke any API keys or master keys that may have been minted, since a prior exploit would leave attacker-controlled credentials that survive the config change. Monitor the GitHub repository (https://github.com/MemTensor/MemOS) and the VulnCheck advisory (https://www.vulncheck.com/advisories/memos-authentication-bypass-via-unset-internal-service-secret) for a patched release and upgrade when available.
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
The defect lives in src/memos/api/middleware/auth.py in the is_internal_request() helper. The code compares os.getenv('INTERNAL_SERVICE_SECRET') against the caller-supplied X-Internal-Service header; when the environment variable is unset it returns None, and a request that omits the header also yields None, so the equality check evaluates None == None as True. This is a textbook CWE-697 (Incorrect Comparison): the logic conflates 'no configured secret' with 'valid secret match,' so the absence of a value becomes a positive authentication result. MemOS is an open-source Python framework (CPE cpe:2.3:a:memtensor:memos) that brokers persistent memory and data for LLM/agent applications, and the affected middleware is the gate that distinguishes external users from privileged internal service calls.
Know when Memos 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:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Remote unauthenticated single request with no interaction (AV:N/AC:L/PR:N/UI:N); full admin over keys and data endpoints yields C:H/I:H, and key revocation/data control gives A:H, scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
MemOS is a memory operating system for LLMs and AI agents. In deployments where authentication is enabled (AUTH_ENABLED=true) but the undocumented, defaultless INTERNAL_SERVICE_SECRET environment variable is unset, the is_internal_request() check in src/memos/api/middleware/auth.py fails open: os.getenv("INTERNAL_SERVICE_SECRET") returns None and a request omitting the X-Internal-Service header also yields None, so the comparison None == None evaluates true. The request is then treated as a trusted internal principal and granted scopes: ["all"]. As a result, an unauthenticated remote attacker can reach the admin API-key management endpoints to mint API keys for any user, enumerate keys, revoke keys, and generate a master key for persistent privileged access, as well as all data endpoints.
Executive ViewAI
MemOS (MemTensor), the memory operating system for LLM and AI agent infrastructure, contains a critical authentication bypass (CVE-2026-75110, CVSS 9.3) that allows unauthenticated remote attackers to assume full administrative privileges. Organizations deploying MemOS face immediate risk of unrestricted access to AI system data, API credentials, and operational control.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Immediately set INTERNAL_SERVICE_SECRET to a cryptographically random value on all production instances; (2) Restrict network access to MemOS admin and data API ports to trusted internal subnets using network-layer controls; (3) Enable request logging and configure alerts for anomalous API-key management or data access attempts; (4) Disable AUTH_ENABLED if the MemOS instance serves only non-production or sandboxed workloads; (5) Audit logs for any API calls from external sources during the period MemOS has been running.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
elestio memos v0.23.0 is vulnerable to Server-Side Request Forgery (SSRF) due to insufficient validation of user-supplie
Authorization Bypass Through User-Controlled Key in GitHub repository usememos/memos prior to 0.9.0. Rated critical seve
Cross-site Scripting (XSS) - Stored in GitHub repository usememos/memos prior to 0.9.1. Rated critical severity (CVSS 9.
Cross-site Scripting (XSS) - Stored in GitHub repository usememos/memos prior to 0.9.1. Rated critical severity (CVSS 9.
Cross-Site Request Forgery (CSRF) in GitHub repository usememos/memos prior to 0.15.1. Rated high severity (CVSS 8.8), t
Improper Privilege Management in GitHub repository usememos/memos prior to 0.13.2. Rated high severity (CVSS 8.8), this
Cross-Site Request Forgery (CSRF) in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), th
Improper Access Control in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), this vulnera
Improper Privilege Management in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), this v
Authorization Bypass Through User-Controlled Key in GitHub repository usememos/memos prior to 0.9.1. Rated high severity
Improper Access Control in GitHub repository usememos/memos prior to 0.9.0. Rated high severity (CVSS 8.8), this vulnera
Improper Authorization in GitHub repository usememos/memos prior to 0.9.0. Rated high severity (CVSS 8.8), this vulnerab
EUVD-2026-60389
GHSA-v9vw-ccqp-q298
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB