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-55609

CVE-2026-55609: Arbitrary File Read and Write via Model Context Protocol (MCP) Tools in sublinear-time-solver and consciousness-explorer

Alon Barad
Alon Barad
Software Engineer

Aug 26, 2026·5 min read·0 visits

Executive Summary (TL;DR)

A path traversal vulnerability in sublinear-time-solver and consciousness-explorer allows local attackers to perform arbitrary file reads and writes via unvalidated MCP tool parameters.

An arbitrary file read and write vulnerability exists in the Model Context Protocol (MCP) server endpoints of sublinear-time-solver and consciousness-explorer. By providing unvalidated file paths to the export_state, import_state, saveVectorToFile, and loadVectorFromFile tools, local attackers can read or overwrite sensitive host files.

Vulnerability Overview

The Model Context Protocol (MCP) server implementations in sublinear-time-solver (specifically version 1.5.0) and its companion library consciousness-explorer (specifically version 1.1.1) expose operational endpoints designed to facilitate state and vector calculations. These endpoints are accessible as specialized tools named export_state, import_state, saveVectorToFile, and loadVectorFromFile.

These components accept user-provided path parameters without enforcing structural directory restrictions. Consequently, the exposed attack surface allows any user or local process capable of communicating with the MCP interface to interact directly with filesystem components under the privileges of the running application process.

This vulnerability is classified under CWE-73 (External Control of File Name or Path). The lack of absolute restriction and path validation permits attackers to perform read and write operations, leading to complete compromise of integrity and confidentiality on the local filesystem.

Root Cause Analysis

The root cause of this vulnerability lies in the direct transmission of user-controlled input paths to low-level filesystem interfaces. In consciousness-explorer (<= 1.1.1), the export_state and import_state tools expose an execution parameter named filepath. This string variable is handled directly by the system APIs without sanitization.

When a request is submitted, the code resolves the input path using standard filesystem utilities and executes direct IO actions such as fs.writeFileSync(filepath, JSON.stringify(state)). Because these tools do not perform bounds checking or relative path normalization, an attacker can input parent directory patterns (../) or absolute path structures to navigate beyond the workspace scope.

Similarly, in sublinear-time-solver (<= 1.5.0), the tools saveVectorToFile and loadVectorFromFile dynamically resolve path parameters using path.resolve(filePath). The program then invokes recursive folder creation followed by file reads or writes. If an attacker directs this path to systemic configurations, files will be read or overwritten silently.

Code Analysis

In the vulnerable version of consciousness-explorer (src/consciousness-explorer/index.js), the state-saving logic relies entirely on the client's input validation:

// Vulnerable Implementation
async exportState(filepath) {
    const fs = await import('fs');
    fs.writeFileSync(filepath, JSON.stringify(state, null, 2));
    return state;
}

The corresponding patch addresses this deficiency by creating a dedicated verification helper named resolveVectorPath within a newly introduced security file (safe-path.ts / safe-path.js). This module validates the structural safety of the incoming parameter before interacting with filesystem resources:

// Patched Implementation (safe-path.ts)
export function resolveVectorPath(
  filename: unknown,
  options: { stateDir?: string } = {},
): string {
  assertSafeBasename(filename);
  const stateDir = options.stateDir ?? DEFAULT_VECTOR_DIR;
  const baseAbs = path.resolve(stateDir);
  fs.mkdirSync(baseAbs, { recursive: true, mode: 0o700 });
  const candidate = path.resolve(baseAbs, filename as string);
  const rel = path.relative(baseAbs, candidate);
  if (rel.startsWith('..') || path.isAbsolute(rel) || rel.includes(`..${path.sep}`)) {
    throw new SafePathError(`resolved path "${candidate}" escapes vector dir "${baseAbs}"`);
  }
  return candidate;
}

The remediated implementation establishes an anchor path (baseAbs) and evaluates the candidate output path relative to this anchor. The directory confinement checks guarantee that if the output attempts to escape the root directory using relative patterns, an error is triggered, immediately halting execution.

Exploitation Methodology

To execute this vulnerability, an attacker must craft JSON-RPC requests directed at the local MCP server endpoint. Because the software interacts natively with LLM applications, exploitation can occur locally or via malicious system instructions delivered to integrated agents.

For an arbitrary file write attack, the client submits a JSON payload to invoke the export_state tool, defining a destination directory such as /tmp/sublinear_state_poc.json to prove the ability to write files outside of the intended state boundaries:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "export_state",
    "arguments": {
      "filepath": "/tmp/sublinear_state_poc.json"
    }
  }
}

For an arbitrary file read attack, the attacker calls the loadVectorFromFile tool and provides directory traversal variables to point to sensitive server configurations or operating system databases:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "loadVectorFromFile",
    "arguments": {
      "file_path": "../../../../../../etc/passwd"
    }
  }
}

When the application processes this traversal request, it reads the contents of the target system file and packages it directly inside the RPC response, facilitating data exfiltration.

Impact Assessment

The impact of CVE-2026-55609 is substantial. Successful exploitation allows unauthorized read and write access to files accessible under the host system permissions of the running application. Attackers can leverage the writing capabilities to modify configuration structures, drop administrative authorization configurations, or overwrite executable files.

The arbitrary file reading capabilities also present confidentiality exposures. Sensitive database environments, keys, and operational files can be systematically harvested from vulnerable container containers.

When this application interacts with AI-driven models or automated agents, the risk is amplified. An external agent could manipulate the model context to invoke filesystem utilities with engineered path variables, bridging application security domains and leading to indirect code execution.

Remediation and Mitigation

To mitigate this vulnerability, system administrators and developers must update dependencies immediately. Ensure that sublinear-time-solver is updated to version 1.6.0 or higher, and consciousness-explorer is updated to version 1.1.2 or higher.

If instant upgrades are not feasible within your system architecture, the following host-level controls must be applied:

  • Run the underlying application using a dedicated, non-privileged system user profile to reduce the scope of directory modifications.

  • Use network segmentation rules to block the MCP interfaces from accepting non-local connections.

  • Explicitly configure secure isolation pathways by setting the target environment variables SUBLINEAR_SOLVER_VECTOR_DIR and CONSCIOUSNESS_EXPLORER_STATE_DIR to isolated, sandboxed directories.

Official Patches

ruvnetGitHub Security Advisory
ruvnetPull request containing the safe path verification logic

Fix Analysis (2)

Technical Appendix

CVSS Score
7.1/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

Affected Systems

sublinear-time-solver (version 1.5.0)consciousness-explorer (version 1.1.1)

Affected Versions Detail

Product
Affected Versions
Fixed Version
sublinear-time-solver
ruvnet
< 1.6.01.6.0
consciousness-explorer
ruvnet
< 1.1.21.1.2
AttributeDetail
CWE IDCWE-73
Attack VectorLocal
CVSS Base Score7.1
Exploit StatusProof of Concept
CISA KEV StatusNot Listed
ImpactArbitrary File Read and Write

MITRE ATT&CK Mapping

T1005Data from Local System
Collection
T1546Event Triggered Execution
Persistence
CWE-73
External Control of File Name or Path

The software allows user input to control or influence the paths used in filesystem operations without adequate validation, potentially leading to unauthorized access or modification of files.

Known Exploits & Detection

GitHub IssuesPublic issue reporting vulnerability and outlining the vector paths
Public Exploit RepositoriesDetailed researcher report containing Proof-of-Concept demonstration scripts

References & Sources

  • [1]GitHub Security Advisory GHSA-xc9g-j69q-37xw
  • [2]Sublinear-time-solver Release v1.6.0

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 2 hours ago•CVE-2026-55604
8.6

CVE-2026-55604: Authorization Bypass via Global Session Singleton in @arikusi/deepseek-mcp-server

An Authorization Bypass Through User-Controlled Key (CWE-639 / Insecure Direct Object Reference) vulnerability exists in @arikusi/deepseek-mcp-server starting in version 1.4.2 and fixed in 1.7.0. In Streamable HTTP transport mode, a process-global SessionStore singleton allows any remote client to retrieve or modify active conversation contexts belonging to other clients.

Alon Barad
Alon Barad
1 views•7 min read
•about 3 hours ago•CVE-2026-45018
9.8

CVE-2026-45018: Unauthenticated Remote Code Execution via MCP stdio Transport in Chainlit

CVE-2026-45018 is a critical command injection vulnerability in Chainlit's Model Context Protocol (MCP) stdio transport backend. By submitting a crafted JSON payload containing dangerous argument options to an unauthenticated HTTP endpoint, a remote attacker can bypass executable validation rules and run arbitrary shell commands with the privileges of the active Python process.

Alon Barad
Alon Barad
4 views•10 min read
•about 4 hours ago•CVE-2026-45019
7.2

CVE-2026-45019: Server-Side Request Forgery (SSRF) in Chainlit MCP Endpoint

An unauthenticated server-side request forgery (SSRF) vulnerability exists in Chainlit versions >= 2.4.0rc0 and < 2.12.0 when the Model Context Protocol (MCP) features are enabled. This vulnerability allows remote, unauthenticated attackers to force the backend application server to initiate arbitrary HTTP/HTTPS connections to internal subnets, localhost endpoints, or cloud metadata infrastructure.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 5 hours ago•CVE-2026-55099
7.5

CVE-2026-55099: Algorithmic Complexity Denial of Service in icalendar Component Equality

An algorithmic complexity denial of service vulnerability exists in the Python icalendar library's component equality evaluation. Due to recursive nested comparisons inside list membership operations, parsing and validating calendar components with deep nesting triggers exponential execution time, blocking application threads and consuming 100% of the available CPU core.

Alon Barad
Alon Barad
10 views•8 min read
•about 6 hours 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
2 views•11 min read
•about 7 hours ago•CVE-2026-55605
5.3

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

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.

Alon Barad
Alon Barad
9 views•6 min read