Description
Functype is a family of TypeScript functional programming libraries. Prior to 1.4.4, the `set_functype_version` MCP tool in `functype-mcp-server` accepts an unconstrained `version` string using only `z.string()` validation in `packages/mcp-server/src/index.ts` and interpolates it into `functype@<version>` for `pnpm add`. Package-alias syntaxes such as `file:`, `npm:`, URLs, or paths can cause an arbitrary local or remote package to be installed as functype. Immediately afterward, `initDocsData(true)` in `packages/mcp-server/src/lib/docs/data.ts` resolves `functype/cli` and dynamically imports the newly installed module, executing attacker-controlled JavaScript with the MCP server process's privileges. Any MCP client able to send a `tools/call` request invoking the tool can exploit the flaw; the tool is enabled by default without authentication in `stdio` mode. A connected AI assistant susceptible to indirect prompt injection can also be induced to invoke it from a malicious document or web page. In non-default `TRANSPORT_TYPE=httpStream` deployments, a network-accessible attacker does not require local access. Successful execution can read process secrets, modify files, or terminate the server. This issue is fixed in `version` 1.4.4.
Published: 2026-10-28
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

The set_functype_version tool in Functype’s MCP server accepts any input string as a version and uses it to run `pnpm add functype@<version>`. Because the validation is only a generic string check, package‑alias syntax such as file:, npm:, URLs, or local paths can be used to cause the server to install an arbitrary package. Immediately afterward the tool imports the newly installed package and executes its JavaScript in the context of the MCP server, giving the attacker the same privileges as the process. An attacker can therefore read secrets, modify files, or terminate the server. The flaw is a classic Remote Code Execution vulnerability because the attacker supplies arbitrary code that runs with server privileges.

Affected Systems

Functype library, specifically the functype‑mcp‑server component from JordanBurke, is affected in all versions released prior to 1.4.4. The 1.4.4 release contains a fix that removes the unsanitized version handling logic.

Risk and Exploitability

The vulnerability scores a high CVSS of 7.8. EPSS information is not available and the issue is not listed in the CISA KEV catalog. Attackers can exploit the flaw by sending a tools/call request to the MCP server; the set_functype_version tool is enabled by default without authentication when the server runs in stdio mode, so any connected client can trigger it. In deployments that use the httpStream transport, a network‑accessible attacker can also invoke the tool. Given the high severity score and the readily exploitable nature of the vulnerability, the risk to affected systems is considered high.

Generated by OpenCVE AI on October 28, 2026 at 14:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Functype version 1.4.4 or later to remove the vulnerable code.
  • If an upgrade is not immediately possible, disable the set_functype_version tool or restrict tools/call requests to trusted clients only.
  • Limit the MCP server’s transport to a secured or local channel, ensuring that only authorized users can communicate with the server.

Generated by OpenCVE AI on October 28, 2026 at 14:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-wcjj-9m6g-2fr2 functype-mcp-server: MCP `set_functype_version` Package Alias RCE via Unsanitized pnpm install + Dynamic Import
History

Wed, 28 Oct 2026 13:30:00 +0000

Type Values Removed Values Added
Description Functype is a family of TypeScript functional programming libraries. Prior to 1.4.4, the `set_functype_version` MCP tool in `functype-mcp-server` accepts an unconstrained `version` string using only `z.string()` validation in `packages/mcp-server/src/index.ts` and interpolates it into `functype@<version>` for `pnpm add`. Package-alias syntaxes such as `file:`, `npm:`, URLs, or paths can cause an arbitrary local or remote package to be installed as functype. Immediately afterward, `initDocsData(true)` in `packages/mcp-server/src/lib/docs/data.ts` resolves `functype/cli` and dynamically imports the newly installed module, executing attacker-controlled JavaScript with the MCP server process's privileges. Any MCP client able to send a `tools/call` request invoking the tool can exploit the flaw; the tool is enabled by default without authentication in `stdio` mode. A connected AI assistant susceptible to indirect prompt injection can also be induced to invoke it from a malicious document or web page. In non-default `TRANSPORT_TYPE=httpStream` deployments, a network-accessible attacker does not require local access. Successful execution can read process secrets, modify files, or terminate the server. This issue is fixed in `version` 1.4.4.
Title Functype: MCP set_functype_version Package Alias RCE via Unsanitized pnpm install + Dynamic Import
Weaknesses CWE-829
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-28T13:08:52.592Z

Reserved: 2026-07-02T19:53:48.829Z

Link: CVE-2026-59176

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-28T14:17:04.593

Modified: 2026-10-28T15:24:56.033

Link: CVE-2026-59176

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T14:45:13Z

Weaknesses
  • CWE-829

    Inclusion of Functionality from Untrusted Control Sphere