CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55605

CVE-2026-55605: Missing Authentication in @arikusi/deepseek-mcp-server HTTP Transport Endpoint

Alon Barad
Alon Barad
Software Engineer

Aug 25, 2026·6 min read·3 visits

Executive Summary (TL;DR)

Unauthenticated remote attackers can query DeepSeek models and deplete system quotas via an exposed JSON-RPC endpoint on port 3000.

The self-hosted HTTP transport mode of @arikusi/deepseek-mcp-server (an MCP server for DeepSeek V4) exposes its JSON-RPC endpoint (POST /mcp) without authentication in versions 1.4.2 through 1.7.0. Unauthenticated clients can establish Model Context Protocol sessions and invoke tools, consuming the host's configured DeepSeek API key.

Vulnerability Overview

The self-hosted HTTP transport mode of the @arikusi/deepseek-mcp-server package facilitates communication between external clients and the Model Context Protocol (MCP) daemon. This server is designed to securely hold and utilize administrative keys, such as the DEEPSEEK_API_KEY, to perform downstream model interactions. In versions starting at 1.4.2 and extending up to 1.8.0, the system exposes its main JSON-RPC communications hub without verifying the identity of the incoming request client.

Because the daemon instantiates its core HTTP application through the createMcpExpressApp function without configure-time middleware, any network-accessible endpoint can route arbitrary payloads directly to the controller. The underlying system classifies this structural omission under CWE-306, representing a critical missing authentication flaw on a component designed to handle powerful automation tools.

When deployed on a public-facing network interface or exposed via configuration files such as Docker Compose with wildcard bindings (0.0.0.0), the system is completely vulnerable to unauthorized remote users. This enables external clients to issue complex API requests, resulting in resource exhaustion and financial loss for the endpoint operator.

Root Cause Analysis

The core issue stems from how the HTTP listener is configured in src/transport-http.ts. The transport module configures an Express web server to receive HTTP POST payloads containing JSON-RPC 2.0 instructions and convert them into MCP actions. In the vulnerable release range, the application configures the server instance via createMcpExpressApp without defining an authentication provider or registering request verification handlers on the /mcp route.

Without an active security middleware check, the Express pipeline forwards all HTTP POST packets directly to the internal JSON-RPC parser. This process permits any visitor to establish a session state and obtain a valid session identifier. Once this state is active, the transport layer allows full read and write execution rights to any exposed model-tool capabilities.

Furthermore, the default configuration within the project's containerization templates instructs the runtime environment to bind the socket listener to all available network interfaces. Because this default behavior operates without verifying loopback limits or enforcing credential headers, the application exposes its capabilities on the external port 3000 to any internet-facing router.

Code Analysis

Analyzing the vulnerable code path in src/transport-http.ts highlights the lack of authorization layers prior to routing requests to the JSON-RPC engine. In the unpatched versions, the server initialization logic creates the Express application and defines the /mcp endpoint directly, skipping any conditional token checks:

// Vulnerable: Express route handler lacks authorization middleware
export function createHttpApp(serverFactory: () => McpServer) {
  const app = createMcpExpressApp({ host: '0.0.0.0' });
  // ... routing is established directly with no auth middleware ...
  return app;
}

The patched version implemented in commit dab07ed93ddde0ab219d4cb7066785847db53a32 updates the application structure to perform timing-safe string comparison verification. The following Mermaid diagram shows the flow of request processing after the application of the patch:

To remediate the vulnerability, the development team integrated constant-time string comparison methods to evaluate the HTTP_AUTH_TOKEN environment variable against incoming headers. If the expected variable is set, any request lacking the matching bearer string receives a 401 Unauthorized response immediately, stopping execution before the JSON-RPC parser processes the request body:

// Patched: Implementation of bearer validation and host verification
if (authToken) {
  const expected = `Bearer ${authToken}`;
  app.use('/mcp', (req, res, next) => {
    const provided = req.headers['authorization'];
    if (typeof provided === 'string' && timingSafeStringEqual(provided, expected)) {
      next();
      return;
    }
    res.status(401).json({
      jsonrpc: '2.0',
      error: { code: -32001, message: 'Unauthorized' },
      id: null,
    });
  });
}

Exploitation Methodology

Exploiting this vulnerability does not require complex payloads or cryptographic bypasses because the target endpoint does not require any credentials. An actor begins by scanning network ranges for port 3000 or monitoring server responses for standard /health endpoints. An active, vulnerable server replies with system metadata and confirmed version indices.

After locating a target, the caller transmits an initialization instruction formatted as a standard JSON-RPC 2.0 object to the /mcp endpoint. The server processes this unauthenticated payload, instantiates a session tracking record, and returns a unique identifier in the mcp-session-id response header. This sequence establishes a persistent session state without credentials:

POST /mcp HTTP/1.1
Host: target:3000
Content-Type: application/json
 
{
  "jsonrpc": "2.0",
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "capabilities": {},
    "clientInfo": { "name": "exploit-test", "version": "1.0" }
  },
  "id": 1
}

Using the acquired session ID, the user can invoke backend commands such as tools/call. Because the server processes requests using its local DEEPSEEK_API_KEY, the attacker's prompt is forwarded to the DeepSeek upstream infrastructure, causing direct utilization of the administrator's API allocation.

Impact Assessment

The security impact of CVE-2026-55605 centers on unauthorized resource consumption and the potential compromise of sensitive operations. Because the server uses a pre-configured backend token to interact with DeepSeek, external actors can run expensive LLM requests at the owner's expense. This can quickly exhaust API quotas or cause significant financial charges on pay-as-you-go developer accounts.

In addition to financial impact, the vulnerability exposes metadata about the server's environment and previous operations. Unauthenticated users can list active sessions and retrieve details about tools integrated with the platform, exposing internal workflows or directory layouts depending on the active tool capabilities.

While the flaw does not directly allow arbitrary local code execution on the underlying host, it bypasses the primary security perimeter of the server. This makes the vulnerability highly critical for self-hosted instances connected to corporate networks or exposed directly to the public internet.

Remediation and Mitigation

Remediation requires upgrading the NPM package dependency @arikusi/deepseek-mcp-server to version 1.8.0 or later. This update changes the default network binding interface from 0.0.0.0 to 127.0.0.1 and integrates token-based verification checks into the HTTP routing path.

Administrators must configure the HTTP_AUTH_TOKEN environment variable to enforce authentication. This token must be a long, randomly generated string, and clients must supply it in the Authorization header of all HTTP requests as a bearer token:

# Example of setting a secure authorization token
export HTTP_AUTH_TOKEN="$(openssl rand -hex 32)"

If upgrading immediately is not possible, deploy defensive network rules to restrict access. Configure firewalls to block port 3000 from external IP addresses, or bind the application container strictly to the loopback interface within Docker configuration templates.

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS Probability
0.60%
Top 54% most exploited

Affected Systems

@arikusi/deepseek-mcp-server

Affected Versions Detail

Product
Affected Versions
Fixed Version
@arikusi/deepseek-mcp-server
arikusi
>= 1.4.2, < 1.8.01.8.0
AttributeDetail
CWE IDCWE-306
Attack VectorNetwork (AV:N)
CVSS v3.15.3 (Medium)
Exploit StatusProof-of-Concept
CISA KEV StatusNot Listed
Affected ComponentHTTP Transport Mode (transport-http.ts)

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-306
Missing Authentication for Critical Function

Vulnerability Timeline

Release of vulnerable version 1.7.0
2026-04-22
Patch merged in commit dab07ed93ddde0ab219d4cb7066785847db53a32 and version 1.8.0 released
2026-06-14
GitHub Advisory GHSA-72f3-6w86-7rv3 published and CVE-2026-55605 assigned
2026-07-09
CVE record processed by NVD
2026-07-10

More Reports

•33 minutes ago•CVE-2026-54338
5.3

CVE-2026-54338: JupyterHub Unauthenticated Denial of Service via Unbounded Username Logging

JupyterHub is vulnerable to an unauthenticated Denial of Service (DoS) vulnerability. Prior to version 5.5.0, form-based authenticators failed to restrict the size of the username input field on failed logins, allowing remote attackers to exhaust host storage and memory resources.

Amit Schendel
Amit Schendel
0 views•11 min read
•about 3 hours ago•GHSA-VWF3-4XXJ-QG6H
9.8

GHSA-VWF3-4XXJ-QG6H: Server-Side Template Injection in mcp-contextforge-gateway

A Server-Side Template Injection (SSTI) leading to Remote Code Execution (RCE) was discovered in the mcp-contextforge-gateway package before version 1.0.0. The vulnerability stems from an unsandboxed Jinja2 template rendering environment combined with an unsafe fallback mechanism using Python's native str.format() function. Attackers with template modification access could bypass static regex filters to execute arbitrary commands on the hosting platform.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 4 hours ago•CVE-2026-55596
8.7

CVE-2026-55596: DOM-based Cross-Site Scripting (XSS) in Plate Media Embed Component

CVE-2026-55596 is a critical DOM-based Cross-Site Scripting (XSS) vulnerability in the Plate rich-text editor framework (specifically within the @platejs/media package). The issue stems from an optimization fast-path that short-circuits safety parsing if a provider or source URL is already declared on an element. Consequently, serialized documents carrying malicious javascript: URLs bypass protocol sanitization and are loaded directly into iframe elements, leading to code execution.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 5 hours ago•GHSA-8QX3-8GM5-9CJ2
7.8

GHSA-8QX3-8GM5-9CJ2: Terminal Escape-Sequence Injection in pickem

The npm package 'pickem' is vulnerable to a terminal escape-sequence injection (CWE-150). Unsanitized terminal outputs allow attackers to execute arbitrary shell commands via clipboard hijacking (OSC 52) or manipulate terminal displays through Control Sequence Introducers (CSI).

Alon Barad
Alon Barad
5 views•6 min read
•about 6 hours ago•CVE-2026-55537
7.1

CVE-2026-55537: Webhook Server-Side Request Forgery and TOCTOU Bypass in PraisonAI

CVE-2026-55537 is a server-side request forgery (SSRF) and time-of-check time-of-use (TOCTOU) vulnerability in the PraisonAI multi-agent framework before version 4.6.58. The flaw exists in the job-submission component's webhook URL validation logic. When DNS resolution fails during verification, the application fails open, enabling attackers to register unresolvable URLs. When a completed job triggers the webhook, the application performs a fresh DNS resolution that attackers can manipulate to target internal resources.

Alon Barad
Alon Barad
9 views•6 min read
•about 6 hours ago•CVE-2026-54625
4.8

CVE-2026-54625: Server-Side Page Cache Bypass and Cache Poisoning in django CMS

Prior to version 5.0.8, django CMS fails to respect dynamically declared Vary HTTP headers in its internal page cache. This allows remote attackers to bypass authorization, leak sensitive information across user sessions, or poison the page cache by sending requests with custom headers.

Alon Barad
Alon Barad
6 views•7 min read