Skip to content

v1.4.1

Choose a tag to compare

@SpookySandwich SpookySandwich released this 26 Oct 05:30
890a9da

Harden the repository checkout's transitive MCP client dependency to @modelcontextprotocol/client 2.3.0 (@modelcontextprotocol/core 2.3.0) via an @deepseek-ai/dsh-mcp-client override (#11).

  • Override @deepseek-ai/dsh-mcp-client to @modelcontextprotocol/client 2.3.0 (resolving @modelcontextprotocol/core 2.3.0) in this repository's package.json and package-lock.json, covering both MCP client advisories:
    • GHSA-6qxp-vccf-f47h / CVE-2026-104850 (>=2.0.0 <2.2.0, fixed in 2.2.0): OAuth credential disclosure to an authorization server selected by an untrusted MCP server (applications using OAuth remain responsible for expectedIssuer and issuer-preserving credential storage).
    • GHSA-6prh-2h8m-c8cw / CVE-2026-111769 (>=2.0.0 <2.3.0, fixed in 2.3.0): HTTP transports forwarding custom request headers across origins on redirects (and forwarding request bodies on 307/308 redirects), which matches the requestInit.headers transport pattern used by DSH's MCP bridge and still affected 2.2.0.
  • Behavior and scope notes:
    • Checkout-only dependency hardening (existing user DSH hosts unaffected): npm applies overrides only at the root project and does not ship package-lock.json or bundle DSH/MCP packages in the published plugin archive. Installing or updating dsh-plugin-message-edit does not patch or upgrade @modelcontextprotocol/client in an existing user's DSH host installation; DSH host dependencies remain managed by the host environment. No plugin runtime or client code changed.
    • Cross-origin redirect behavior in 2.3.0: @modelcontextprotocol/client 2.3.0 rejects cross-origin redirects by default (following same-origin redirects on Node and refusing redirects in browsers). MCP endpoints that rely on cross-origin redirects must be configured with their final destination URL.

在仓库检出环境的 package.json(overrides)与 package-lock.json 中将 @deepseek-ai/dsh-mcp-client 的传递依赖固定为 @modelcontextprotocol/client 2.3.0(及 @modelcontextprotocol/core 2.3.0),同时覆盖 GHSA-6qxp-vccf-f47h(CVE-2026-104850,OAuth 凭据泄露,2.2.0 修复)与 GHSA-6prh-2h8m-c8cw(CVE-2026-111769,HTTP 传输在跨源重定向时转发自定义请求头及 307/308 请求体,2.3.0 修复;2.3.0 默认拒绝跨源重定向,Node 下仅跟随同源重定向,依赖跨源重定向的 MCP 服务端需配置最终 URL)。该变更仅加固本仓库的开发/测试检出环境:npm 在将本插件作为依赖安装时会忽略 overrides,且发布归档不含 package-lock.json 或宿主依赖,因此安装或更新本插件不会修改用户已安装的 DSH 宿主环境(#11)。

Thanks to @anupamme (Anupam Mediratta) for contributing the @deepseek-ai/dsh-mcp-client override to @modelcontextprotocol/client and @modelcontextprotocol/core 2.3.0 in #11.

Validation: 56 automated tests (including 37 internal tree assertions), 4 release-tool tests, 13-file npm package verification, npm 10 and npm 11 lockfile stability checks, an 8-case local StreamableHTTPClientTransport redirect verification across 2.2.0 and 2.3.0 (307/308 same-origin and cross-origin custom header/body behavior), and isolated fresh-boot and restart DSH acceptance runs across official 0.2.0-rc.2, official 0.2.1-rc.2, and the overridden checkout host with an offline model. The v1.4.1 source tag and release are available on GitHub; npm publication of dsh-plugin-message-edit@1.4.1 (and 1.4.0) is pending manual publish.