highCVSS 8.1Vulnerability

CVE-2026-49291

## Summary The HTTP MCP JSON-RPC endpoint at `/mcp` requires only OAuth `read` scope for all requests, then dispatches `tools/call` directly to handlers that include mutating tools. A read-only OAuth client can call `store_memory` and `delete_memory` through MCP even though the corresponding REST endpoints require `write` scope. ## Technical Details `src/mcp_memory_service/web/api/mcp.py` declares `mcp_endpoint` with `user: AuthenticationResult = Depends(require_read_access)`. For `tools/call`, it extracts the requested tool name and arguments, then calls `handle_tool_call(storage, tool_name, arguments)` without passing the authenticated user or checking a per-tool required scope. The MCP tool registry includes both read tools and write tools. In the same handler file, `store_memory` creates a `Memory` object and calls `storage.store(...)`, while `delete_memory` calls `storage.delete(content_hash)`. These operations are reachable with only the `read` scope. The REST endpoint demonstrates the intended boundary: `POST /api/memories` uses `Depends(require_write_access)` and rejects a read-only token with 403 `insufficient_scope`. ## Reproduction 1. Enable OAuth and disable anonymous access. 2. Generate a valid OAuth JWT with only `scope: read`. 3. Confirm the REST write endpoint rejects it: ```http POST /api/memories Authorization: Bearer <read-only-token> Content-Type: application/json {"content":"rest denied control"} ``` Expected and observed: HTTP 403 with `Required scope 'write' not granted`. 4. Send the same read-only token to the MCP endpoint: ```http POST /mcp Authorization: Bearer <read-only-token> Content-Type: application/json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "store_memory", "arguments": { "content": "mcp read scope stored this", "tags": ["poc"] } } } ``` Observed: HTTP 200 JSON-RPC success and the storage `store` sink is reached. 5. A read-only token can also call `dele

Properties

summary
mcp-memory-service: OAuth read-only clients can write and delete memories through MCP tools/call
severity
high
epss_score
0.00488
cvss_score
8.1
ghsa_published
2026-06-26T21:04:38Z
source_url
https://github.com/advisories/GHSA-2r68-g678-7qr3
ghsa_updated
2026-06-26T21:04:40Z
ghsa_id
GHSA-2r68-g678-7qr3
cve_id
CVE-2026-49291
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
is_ghsa_only
false
epss_percentile
0.39424

Related Entities (5)

ENRICHED_BY (1)

[Source]FIRST EPSS

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/mcp-memory-service

AFFECTS (1)

[Software]pip/mcp-memory-service

HAS_WEAKNESS (1)

[Weakness]Missing Authorization

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-49291 (CVSS 8.1) — Ninja Signal Threat Intelligence | Ninja Signal