← Back to results
Vulnerability record · public intelligence
CVE-2026-50027
CRITICAL

mcp-memory-service: Missing Authentication on Document API Endpoints Allows Unauthenticated Memory Read/Write/Delete

Published Aug 14, 2026 · Updated Nov 3, 2026

Severity · CVSSCRITICAL · Not scored
Known exploitationNot listed
EPSS / likelihood0.96%
QFinch risk scoreNot available

Original summary

Normalized public record · Updated Nov 3, 2026

mcp-memory-service: Missing Authentication on Document API Endpoints Allows Unauthenticated Memory Read/Write/Delete

Publisher and source text is retained separately from QFinch interpretation.

QFinch assessment

All HTTP routes under /api/documents/ in mcp-memory-service are served without any authentication dependency, even when the server is configured with an API key (MCPAPIKEY) or OAuth. An unauthenticated remote attacker can upload arbitrary content into the memory store (write), retrieve stored document content (read), and permanently delete memories belonging to authenticated users (delete) — all without supplying any credentials. The /api/memories counterpart correctly enforces authentication, making this an inconsistent and exploitable authentication boundary. CVSS 9.8 Critical.

Potential impact

This is a Missing Authentication for Critical Function (CWE-306) vulnerability affecting the HTTP REST server component of mcp-memory-service. Who is impacted: Any operator who deploys the HTTP REST server (memory server --http) with MCPAPIKEY or OAuth enabled, expecting that only authenticated clients can access stored memories. The HTTP server is documented as a supported production feature for team/multi-client deployments. Confidentiality: An unauthenticated attacker can read recently uploaded document content via GET /api/documents/search-content/{uploadid} and enumerate upload history via GET /api/documents/history. Stored memories may contain sensitive context such as personal notes, AI agent working state, or proprietary data. Integrity: An unauthenticated attacker can inject arbitrary content into the memory store by uploading documents, polluting the AI agent's knowledge base with attacker-controlled data (memory poisoning / prompt injection surface). Availability: An unauthenticated attacker can delete all memories matching any chosen tags via DELETE /api/documents/remove-by-tags, or delete individual documents via DELETE /api/documents/remove/{uploadid}, causing permanent loss of stored data.

Technical context

The documents.py router is instantiated without any router-level dependencies= parameter and the file does not import Depends at all, so no authentication guard is present on any of its routes: - src/mcpmemoryservice/web/api/documents.py:33 — from fastapi import APIRouter, UploadFile, File, Form, HTTPException, BackgroundTasks (Depends is absent) - src/mcpmemoryservice/web/api/documents.py:43 — router = APIRouter() (no dependencies= argument) The affected endpoints and their data-flow sinks are: | Route | Line (source) | Sink | Line (sink) | |---|---|---|---| | POST /upload | 149 | storage.store(memory) | 449 | | POST /batch-upload | — | storage.store(memory) | — | | GET /history | — | upload metadata response | — | | GET /search-content/{uploadid} | 729 | memory content response | 781 | | DELETE /remove/{uploadid} | — | storage deletion | — | | DELETE /remove-by-tags | 687 | storage.deletebytags(tags) | 705 | The router is mounted in src/mcpmemoryservice/web/app.py:311: No CORSMiddleware or authentication middleware applies to these routes at mount time. By contrast, the equivalent write endpoint in memories.py is correctly protected: This demonstrates that the authentication infrastructure exists and is intentionally applied elsewhere, but was omitted from all documents.py routes.

Evidence: public source records

Affected products

Affected scope reported by the available public evidence
Affected package, product or rangeFix status
Consult the referenced vendor advisory for affected versions.Consult source advisory

Matching a version is only one part of assessing exposure. QFinch has not assessed your environment on this public page.

Remediation

Apply the vendor-supported fixed release or mitigation, then verify the affected component is no longer reachable.

  1. Confirm the affected product and reachable code path exist in your environment.
  2. Apply the vendor-supported patch or mitigation from the primary advisory.
  3. Rescan the exact deployed revision and retain verification evidence.
Review primary references

Evidence coverage

FIRST-EPSSCVE-LIST-V5
SSVC priority
MEDIUM
Confidence
Not available
Aliases
None reported

Scores appear only when corresponding evidence exists. Missing data is never interpreted as zero risk.

Sources and record history

  1. https://web.archive.org/web/20260508112116/https://github.com/doobidoo/mcp-memory-service ↗
  2. Source repository ↗
  3. https://pypi.org/project/mcp-memory-service ↗

Record history

Published Aug 14, 2026 · Last refreshed Nov 3, 2026