<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Contentful MCP Tools - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/contentful-mcp-tools/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 19 Aug 2026 22:34:19 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/contentful-mcp-tools/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Contentful MCP Tools SSRF via LLM-Controlled Parameters</title><link>https://feed.craftedsignal.io/briefs/2026-08-contentful-mcp-ssrf/</link><pubDate>Wed, 19 Aug 2026 22:34:19 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-contentful-mcp-ssrf/</guid><description>The Contentful MCP tools 'export_space' and 'import_space' are vulnerable to Server-Side Request Forgery (SSRF) due to the unsafe passing of LLM-controlled 'host' and 'proxy' arguments directly to the Contentful Management API client, enabling credential exfiltration.</description><content:encoded><![CDATA[<p>The Contentful MCP tools package (<code>@contentful/mcp-tools</code>) contains a critical vulnerability in the <code>export_space</code> and <code>import_space</code> functions that allows for Server-Side Request Forgery (SSRF). The vulnerability arises because these tools accept <code>host</code> and <code>proxy</code> parameters directly from LLM-controlled input and merge them into the configuration object for the Contentful Management API (CMA) SDK.</p>
<p>Crucially, while the <code>createClientConfig</code> utility correctly extracts only the <code>accessToken</code> for authentication, the subsequent configuration merging logic persists the user-supplied <code>host</code> and <code>proxy</code> values. When the CMA SDK processes these options, it uses the malicious <code>host</code> to construct the base URL for API requests, while automatically attaching the server's legitimate Personal Access Token (PAT) as an <code>Authorization: Bearer</code> header. This allows an attacker to redirect internal CMA API calls to an attacker-controlled endpoint, effectively stealing the server's authentication credentials. This vector is accessible via direct MCP tool invocation or through prompt injection in content managed by Contentful.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker discovers that the MCP server exposes <code>export_space</code> and <code>import_space</code> tools (potentially via <code>list_tools</code>).</li>
<li>Attacker crafts a prompt injection payload or direct MCP tool call to invoke <code>space_to_space_migration_handler</code> with the argument <code>{ &quot;action&quot;: &quot;enable&quot; }</code>.</li>
<li>The handler elevates the privileges of the migration tools, transitioning <code>export_space</code> and <code>import_space</code> from a disabled to an enabled state.</li>
<li>Attacker executes <code>export_space</code> via the LLM, providing a malicious <code>host</code> (e.g., <code>attacker-controlled-server.com</code>) and setting <code>insecure: true</code> to force non-encrypted transit.</li>
<li>The tool merges the provided <code>host</code> parameter into the <code>exportOptions</code> object alongside the legitimate <code>managementToken</code>.</li>
<li>The <code>contentful-export</code> module passes the merged configuration to the <code>contentful-management</code> SDK.</li>
<li>The SDK initializes a client instance using the attacker-provided <code>baseURL</code>, effectively overriding the default Contentful API endpoint.</li>
<li>The SDK initiates an API request (e.g., to <code>/spaces/</code>) to the attacker-controlled server, including the <code>Authorization: Bearer &lt;SERVER_PAT&gt;</code> header, resulting in credential exfiltration.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker to intercept the server's Personal Access Token (PAT). With this token, the attacker gains full management access to the victim's Contentful spaces and content, including the ability to read, modify, or delete sensitive data, and potentially pivot to other integrations linked to the account. This vulnerability affects Contentful MCP Tools versions below 0.4.2 and Contentful MCP Server versions below 1.7.16.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Update <code>@contentful/mcp-tools</code> to version 0.4.2 or higher and <code>@contentful/mcp-server</code> to 1.7.16 or higher immediately.</li>
<li>Implement strict input validation on MCP tool arguments within the server, specifically ensuring that <code>host</code> and <code>proxy</code> parameters are restricted to an allowlist of known Contentful API endpoints.</li>
<li>Audit logs for MCP tool calls where the <code>host</code> parameter deviates from the expected <code>api.contentful.com</code> or <code>cdn.contentful.com</code> domains.</li>
<li>Revoke and rotate any Personal Access Tokens (PATs) that may have been exposed through this vulnerable function if suspicious outgoing connections were detected from the MCP server host.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>llm-security</category><category>credential-theft</category><category>mcp</category></item></channel></rss>