MEDIUM 5.3

CVE-2026-55605: Unauthenticated MCP Endpoint in DeepSeek MCP Server 1.4.2–1.7.x

DeepSeek MCP Server, a tool for integrating DeepSeek V4 AI capabilities, had a critical flaw in its self-hosted HTTP configuration: the main API endpoint accepted requests without any authentication. This meant anyone with network access to a running instance could interact with it as if they were an authorized user. They could initialize sessions, list available tools, and invoke local functions—including one that exposes session data and another that uses the server's own API credentials to make DeepSeek API calls. The issue affected versions 1.4.2 through 1.7.x, and self-hosted deployments using the default container configuration were particularly exposed since HTTP mode and port 3000 are enabled by default.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weaknesses (CWE)
CWE-306
Affected products
0 configuration(s)
Published / Modified
2026-07-09 / 2026-07-10

NVD description (verbatim)

DeepSeek MCP Server is an MCP server for DeepSeek V4. Starting in version 1.4.2 and prior to version 1.8.0, the self-hosted HTTP transport of `@arikusi/deepseek-mcp-server` exposes `POST /mcp` without any authentication: `createMcpExpressApp` is called without an `authProvider` and no middleware guards the route, so any network-reachable client can issue an unauthenticated `initialize` request and obtain a valid MCP session identifier. In reproduced testing against commit `5e1302171e99`, an unauthenticated client was able to initialize a session, enumerate tools, and invoke the local `deepseek_sessions` tool with no credentials. The same unauthenticated session also exposes `deepseek_chat`, whose handler uses the server-side `DEEPSEEK_API_KEY` when self-hosted deployments configure one. This issue applies to self-hosted HTTP mode, not the separately documented hosted BYOK endpoint in `README.md`, which expects an `Authorization: Bearer ...` header. Upstream self-hosted container assets enable HTTP mode by default (`Dockerfile`) and publish port `3000` (`docker-compose.yml`). Version 1.8.0 contains a patch for this issue.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from `createMcpExpressApp` being instantiated without an `authProvider` parameter and the `/mcp` POST endpoint lacking authentication middleware. An unauthenticated client can send an MCP protocol `initialize` request, receive a valid session identifier, and then use that session to invoke MCP tools. Testing against the affected codebase confirmed the ability to call `deepseek_sessions` (exposing session metadata) and `deepseek_chat` (which invokes the DeepSeek API using the server's configured `DEEPSEEK_API_KEY`). The vulnerability is scoped to self-hosted HTTP deployments; the separately documented BYOK hosted endpoint enforces `Authorization: Bearer ...` header validation. Official container images compound exposure by defaulting to HTTP mode and publishing port 3000 without authentication overlays.

Business impact

For organizations running self-hosted DeepSeek MCP Server instances without network segmentation, this vulnerability allows unauthenticated API abuse. An attacker can exhaust DeepSeek API quotas and incur costs using stolen credentials, enumerate or manipulate session state, and potentially exfiltrate session metadata. The risk is most acute for deployments exposed to untrusted networks or the public internet. Internal corporate networks with strict egress filtering face lower practical risk, though lateral movement attacks remain possible.

Affected systems

Self-hosted deployments of `@arikusi/deepseek-mcp-server` versions 1.4.2 through 1.7.x running in HTTP mode. The default Docker image configuration (`Dockerfile` and `docker-compose.yml` as published upstream) is vulnerable out-of-the-box. The hosted BYOK endpoint documented in the repository README is not affected. Version 1.8.0 and later include a patch.

Exploitability

Exploitability is high for externally reachable instances and moderate for internal-only deployments. An attacker needs only network connectivity and basic familiarity with the MCP protocol; no authentication or privilege escalation is required. The attack surface is the `/mcp` endpoint listening on the default port (3000). No user interaction or advanced techniques are needed—straightforward HTTP POST requests suffice. However, practical impact depends on deployment topology and whether the server has valid API credentials configured.

Remediation

Upgrade to version 1.8.0 or later, which implements proper authentication on the `/mcp` endpoint. If immediate patching is not possible, restrict network access to the MCP server port (3000) to trusted clients only using firewall rules, network segmentation, or reverse-proxy authentication. For container deployments, do not expose port 3000 to untrusted networks and consider running the service behind an authenticating reverse proxy (e.g., nginx with auth modules). Rotate any `DEEPSEEK_API_KEY` that may have been exposed during the vulnerability window.

Patch guidance

Update `@arikusi/deepseek-mcp-server` to version 1.8.0 or later. Verify the patch by confirming that the `/mcp` endpoint now requires valid authentication before accepting MCP `initialize` requests. Test in a staging environment to ensure compatibility with existing deployments before rolling out to production. Check the vendor's advisory and release notes for any additional configuration changes or migration guidance.

Detection guidance

Monitor HTTP access logs for POST requests to `/mcp` endpoints originating from unexpected sources or lacking proper authentication headers. Alert on repeated `initialize` requests to the MCP endpoint within short time windows. If available, enable detailed application logging in the MCP server to capture session initialization events and tool invocations. Network-level detection should flag traffic to port 3000 from external or untrusted network segments where the service should not be accessible.

Why prioritize this

Although the CVSS score is moderate (5.3), the practical risk is elevated due to the complete absence of authentication barriers. Any self-hosted instance exposed beyond a trusted network perimeter should be treated as high priority. Instances with valid API credentials configured carry additional risk of financial impact through quota exhaustion. Organizations should prioritize based on deployment topology: externally exposed instances are critical; internal-only instances without API credentials are lower priority but still warrant timely patching.

Risk score, explained

The CVSS 3.1 score of 5.3 reflects a network-accessible vulnerability with low complexity and no authentication requirement (high exploitability), but limited scope and impact. The score assumes no confidentiality breach (tools do not directly leak secrets) and no direct integrity damage, hence a medium severity rating. However, the actual business risk may be higher for organizations with exposed deployments and configured API credentials, where quota exhaustion and financial impact are possible.

Frequently asked questions

Does this affect the hosted BYOK endpoint mentioned in the DeepSeek MCP Server documentation?

No. The hosted BYOK endpoint enforces `Authorization: Bearer ...` header validation and is not affected by this vulnerability. Only self-hosted HTTP deployments are vulnerable.

What happens if I patch to version 1.8.0 but do not rotate my DEEPSEEK_API_KEY?

The patch secures the `/mcp` endpoint going forward, preventing new unauthenticated access. However, if the key was exposed during the vulnerability window and used by attackers, any API calls made with that key remain on your DeepSeek bill. Rotating the key is prudent to ensure exclusive control over future usage.

Can I run the vulnerable version safely behind a reverse proxy with authentication?

Yes, provided the reverse proxy enforces authentication *before* requests reach the MCP server and you trust the proxy implementation. However, patching is the preferred solution to eliminate the vulnerability at the source and avoid configuration complexity.

How do I know if an instance was already compromised during the vulnerability window?

Review HTTP and application logs for the `/mcp` endpoint during your exposure window, looking for `initialize` requests from unexpected sources. Check your DeepSeek API usage history for unusual call patterns or charges. Examine session logs if available. If signs of compromise are found, rotate credentials immediately and investigate the scope of any data accessed.

This analysis is based on the vulnerability description and publicly available information as of the publication date. Security teams should verify patch availability, compatibility, and deployment specifics against the official vendor advisory and their own environments. Exploit status and active threat intelligence are subject to change. This page does not constitute a recommendation to prioritize this vulnerability above others in your environment; risk should be assessed in context of your specific deployment topology, network controls, and business exposure. Always test patches in a controlled environment before production deployment. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).