This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+2 more
Summary
AI summaryHTTP transport sessions are isolated; SessionStore no longer a singleton, fixing cross-session data exposure.
Full changelog
Security
Cross-session data exposure in HTTP transport (high severity). The SessionStore was a process-wide singleton shared across all connected HTTP clients. In HTTP transport mode, any client that provided another client's session_id to deepseek_chat would read that client's conversation history. The deepseek_sessions tool compounded this by letting any client enumerate all active session IDs (list), delete any session (delete), or wipe every tenant's sessions at once (clear).
STDIO transport was unaffected — each STDIO client runs its own server process, so there was no shared state to leak.
Full advisory and CVE coordination pending.
Changed
- BREAKING (HTTP transport only). Each HTTP session now gets an isolated
SessionStoreinstance. Conversation history, session listings, and session deletion are scoped to the HTTP session that created them. Clients on the same server no longer share session state. SessionStoreis no longer a singleton.SessionStore.getInstance()andSessionStore.resetInstance()have been removed. Construct instances withnew SessionStore()and pass them explicitly toregisterChatTool,registerSessionsTool, andregisterAllTools.UsageTracker.getStats().activeSessionsis wired to the STDIO store viaUsageTracker.setSessionSource(). In HTTP transport it reports0by design — a process-wide count across isolated stores would be both meaningless and a minor cross-tenant information leak.
Added
SessionStoreisolation tests: independent instances, no shared state, no cross-store effects onclear/delete/list.- HTTP transport integration test (
src/transport-isolation.test.ts) proving eachserverFactoryinvocation produces a fresh store and that user-suppliedsession_idcollisions across HTTP sessions do not merge data.
Upgrade
npm install @arikusi/[email protected]
Users on STDIO transport: no action needed beyond the upgrade.
Users on HTTP transport: upgrade immediately. Session data is now correctly scoped per HTTP session — if your client relied on cross-client session sharing, that behaviour was the vulnerability and must be reworked.
Breaking Changes
- Each HTTP session now receives its own `SessionStore` instance; conversation history, listings, and deletions are scoped per-session.
- `SessionStore.getInstance()` and `SessionStore.resetInstance()` removed; construct instances with `new SessionStore()` and pass explicitly to tool registration functions.
Security Fixes
- CVE pending: Cross-session data exposure in HTTP transport fixed by isolating each HTTP session's `SessionStore` to prevent unauthorized access to other clients' conversation history and session enumeration/deletion capabilities.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About arikusi/deepseek-mcp-server
MCP server for DeepSeek AI with chat, reasoning, multi-turn sessions, function calling, thinking mode, and cost tracking.
Related context
Beta — feedback welcome: [email protected]