Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
Unauthenticated caller-controlled session_id (PR:N/AC:L) exposes victim conversations (C:H) and allows continuing them (I:L); no genuine availability impact, so A:N rather than the vendor's A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
DeepSeek MCP Server is an MCP server for DeepSeek V4. Starting in version 1.4.2 and prior to version 1.7.0, the process-global SessionStore accepts caller-supplied session_id values without binding them to any authenticated principal or transport session. An attacker can enumerate active session IDs via deepseek_sessions, then reuse a victim-controlled session_id in deepseek_chat to retrieve and continue the victim's conversation context. Version 1.7.0 contains a patch.
AnalysisAI
Session context hijacking in the arikusi DeepSeek MCP Server (versions 1.4.2 through 1.6.x) lets remote attackers read and continue another user's DeepSeek V4 conversations. The process-global SessionStore trusts any caller-supplied session_id without tying it to an authenticated principal or transport session, so an attacker can enumerate live sessions via the deepseek_sessions tool and then replay a victim's session_id through deepseek_chat. No public exploit identified at time of analysis and it is not on CISA KEV, but the mechanics are trivial and fully described in the vendor advisory (GHSA-fh3r-g96v-f578); version 1.7.0 fixes it.
Technical ContextAI
The affected component is a Model Context Protocol (MCP) server (CPE cpe:2.3:a:arikusi:deepseek-mcp-server) that brokers chat requests to the DeepSeek V4 model and maintains multi-turn conversation state in an in-memory, process-wide SessionStore. The root cause maps to CWE-639 (Authorization Bypass Through User-Controlled Key, i.e. an IDOR): session_id is a direct object reference chosen by the caller, and the server performs no ownership check binding that identifier to the authenticated user or the underlying transport (stdio/SSE/HTTP) connection that created it. Because the store is global to the process, every session is reachable by every caller, and the server even exposes an enumeration primitive (deepseek_sessions) that removes the need to guess identifiers.
RemediationAI
Vendor-released patch: upgrade to version 1.7.0 (https://github.com/arikusi/deepseek-mcp-server/releases/tag/v1.7.0), which binds session identifiers to their owning principal/transport session. Until you can upgrade, do not expose the MCP server over a shared network transport (SSE/HTTP): run it locally over stdio bound to a single user so caller-supplied session_id values cannot cross trust boundaries, which limits functionality to one client but eliminates cross-user replay. If a shared deployment is unavoidable, place the server behind an authenticating reverse proxy that isolates each user and restrict access to the deepseek_sessions tool/endpoint so attackers cannot enumerate live session IDs. See the advisory GHSA-fh3r-g96v-f578 for specifics.
More in Deepseek Mcp Server
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42720
GHSA-fh3r-g96v-f578