<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sun, 04 Oct 2026 14:16:46 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-53957</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-53957</link>
      <description>&lt;p&gt;Contentful MCP Server is a Model Context Protocol server for the Contentful Management API. Prior to @contentful/mcp-server 1.7.19 and @contentful/mcp-tools 0.4.5, export_space and import_space in packages/mcp-tools/src/tools/jobs/space-to-space-migration/exportSpace.ts and packages/mcp-tools/src/tools/jobs/space-to-space-migration/importSpace.ts expose host, proxy, rawProxy, and insecure network options to LLM-controlled tool arguments and combine those options with the server&amp;#39;s CONTENTFUL_MANAGEMENT_TOKEN. After space_to_space_migration_handler enables the migration tools, a direct MCP call or prompt injection through attacker-controlled Contentful content can redirect Contentful Management API requests and their Authorization header to an attacker-controlled host or proxy. The regular tools that use createToolClient are unaffected because those tools pin the host from server configuration. Exposure of the personal access token permits persistent out-of-band access to every Contentful space within the token&amp;#39;s scope. This issue is fixed in @contentful/mcp-server 1.7.19 and @contentful/mcp-tools 0.4.5.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Contentful MCP Server is a Model Context Protocol server for the Contentful Management API. Prior to @contentful/mcp-server 1.7.19 and @contentful/mcp-tools 0.4.5, export_space and import_space in packages/mcp-tools/src/tools/jobs/space-to-space-migration/exportSpace.ts and packages/mcp-tools/src/tools/jobs/space-to-space-migration/importSpace.ts expose host, proxy, rawProxy, and insecure network options to LLM-controlled tool arguments and combine those options with the server&amp;#39;s CONTENTFUL_MANAGEMENT_TOKEN. After space_to_space_migration_handler enables the migration tools, a direct MCP call or prompt injection through attacker-controlled Contentful content can redirect Contentful Management API requests and their Authorization header to an attacker-controlled host or proxy. The regular tools that use createToolClient are unaffected because those tools pin the host from server configuration. Exposure of the personal access token permits persistent out-of-band access to every Contentful space within the token&amp;#39;s scope. This issue is fixed in @contentful/mcp-server 1.7.19 and @contentful/mcp-tools 0.4.5.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-53957</guid>
    </item>
    <item>
      <title>GHSA-2xhg-73j7-rrgx — Contentful MCP Server: export_space/import_space tools pass LLM-controlled `host`/`proxy` args to CMA client, redirecti…</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-2xhg-73j7-rrgx</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @contentful/mcp-server, npm: @contentful/mcp-tools&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`export_space` and `import_space` tools in `@contentful/mcp-tools` accept LLM-controlled `host` and `proxy` parameters that are spread directly into the options object passed to `contentful-export` / `contentful-import`. These libraries pass the merged options — including the attacker-controlled `host` — to the Contentful Management API (CMA) SDK, which builds `baseURL` from `host` and attaches the server&amp;#39;s CMA Personal Access Token as `Authorization: Bearer &amp;lt;PAT&amp;gt;` on every outgoing request. An attacker who can invoke MCP tools, or inject instructions into Contentful content the LLM reads, can redirect all CMA requests — and the PAT — to an attacker-controlled endpoint.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause — `exportSpace.ts` lines 126–141** (identical pattern in `importSpace.ts` lines 103–119):&lt;/p&gt;
&lt;p&gt;```typescript
// packages/mcp-tools/src/tools/jobs/space-to-space-migration/exportSpace.ts&lt;/p&gt;
&lt;p&gt;const clientConfig    = createClientConfig(config);  // only extracts accessToken; discards config.host
const managementToken = clientConfig.accessToken;    // server&amp;#39;s CMA PAT&lt;/p&gt;
&lt;p&gt;const exportOptions = {
  ...args,          // ← LLM-controlled tool call args: args.host enters here, unfiltered
  managementToken,  // ← server PAT injected alongside attacker-controlled host
  environmentId: args.environmentId || &amp;#39;master&amp;#39;,
  exportDir:     args.exportDir     || process.cwd(),
  contentFile:   args.contentFile   || `contentful-export-${args.spaceId}.json`,
};&lt;/p&gt;
&lt;p&gt;const contentfulExport = await i…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @contentful/mcp-server, npm: @contentful/mcp-tools&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`export_space` and `import_space` tools in `@contentful/mcp-tools` accept LLM-controlled `host` and `proxy` parameters that are spread directly into the options object passed to `contentful-export` / `contentful-import`. These libraries pass the merged options — including the attacker-controlled `host` — to the Contentful Management API (CMA) SDK, which builds `baseURL` from `host` and attaches the server&amp;#39;s CMA Personal Access Token as `Authorization: Bearer &amp;lt;PAT&amp;gt;` on every outgoing request. An attacker who can invoke MCP tools, or inject instructions into Contentful content the LLM reads, can redirect all CMA requests — and the PAT — to an attacker-controlled endpoint.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause — `exportSpace.ts` lines 126–141** (identical pattern in `importSpace.ts` lines 103–119):&lt;/p&gt;
&lt;p&gt;```typescript
// packages/mcp-tools/src/tools/jobs/space-to-space-migration/exportSpace.ts&lt;/p&gt;
&lt;p&gt;const clientConfig    = createClientConfig(config);  // only extracts accessToken; discards config.host
const managementToken = clientConfig.accessToken;    // server&amp;#39;s CMA PAT&lt;/p&gt;
&lt;p&gt;const exportOptions = {
  ...args,          // ← LLM-controlled tool call args: args.host enters here, unfiltered
  managementToken,  // ← server PAT injected alongside attacker-controlled host
  environmentId: args.environmentId || &amp;#39;master&amp;#39;,
  exportDir:     args.exportDir     || process.cwd(),
  contentFile:   args.contentFile   || `contentful-export-${args.spaceId}.json`,
};&lt;/p&gt;
&lt;p&gt;const contentfulExport = await i…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-2xhg-73j7-rrgx</guid>
    </item>
  </channel>
</rss>
