<?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/"><channel><title>Mcp-Client-Security (&lt; 0.1.9) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/mcp-client-security--0.1.9/</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>Mon, 18 May 2026 13:30:43 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/mcp-client-security--0.1.9/feed.xml" rel="self" type="application/rss+xml"/><item><title>Spring AI MCP Security Unvalidated URL Fetching (SSRF)</title><link>https://feed.craftedsignal.io/briefs/2026-05-spring-ai-ssrf/</link><pubDate>Mon, 18 May 2026 13:30:43 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-spring-ai-ssrf/</guid><description>The mcp-security framework fails to implement SSRF mitigations outlined in the Model Context Protocol, processing untrusted URLs for OAuth-related discovery and metadata without verification, affecting installations with Dynamic Client Registration (DCR) enabled and exposing them to potential Server-Side Request Forgery (SSRF) attacks, tracked as CVE-2026-45609.</description><content:encoded><![CDATA[<p>The mcp-security framework, specifically versions prior to 0.1.9, does not enforce mandatory SSRF mitigations as outlined in the Model Context Protocol (MCP) security specifications. This vulnerability, tracked as CVE-2026-45609, stems from the framework&rsquo;s processing of untrusted URLs for OAuth-related discovery and metadata without proper validation. The issue arises when Dynamic Client Registration (DCR) is enabled, as it fails to validate URLs exposed by MCP Servers (protected resource metadata URL, authorization server URL) and Authorization Servers (all OAuth2 endpoints). This lack of validation allows attackers to potentially manipulate the application into making requests to internal or malicious external servers.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker identifies a Spring AI MCP application with Dynamic Client Registration (DCR) enabled.</li>
<li>The attacker crafts a malicious URL pointing to an internal service or external server.</li>
<li>The attacker provides this malicious URL as part of the DCR process, potentially as the protected resource metadata URL, authorization server URL, or OAuth2 endpoint.</li>
<li>The application, without proper validation, attempts to fetch metadata or interact with the server specified in the malicious URL.</li>
<li>If the URL points to an internal service, the attacker can potentially gain access to sensitive internal resources or configurations.</li>
<li>If the URL points to an external server, the attacker can potentially exfiltrate sensitive data or perform other malicious actions.</li>
<li>The vulnerable application inadvertently makes a request to the attacker-controlled resource.</li>
<li>The attacker monitors access logs on the controlled resource, gathers sensitive data and continues pivoting within the environment.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this SSRF vulnerability (CVE-2026-45609) could allow an attacker to access internal resources, exfiltrate sensitive data, or perform other malicious actions within the network. While the exact number of affected installations is unknown, any Spring AI MCP application with DCR enabled is potentially vulnerable. This could lead to data breaches, service disruptions, or further compromise of the application and its environment.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to version 0.1.9 or later of <code>org.springaicommunity:mcp-client-security</code> to patch CVE-2026-45609.</li>
<li>If upgrading is not immediately feasible, implement the workaround suggested by Spring AI Community by providing a custom <code>McpOAuth2ClientManager</code> that includes URL filtering.</li>
<li>Apply URL filtering through <code>ClientHttpRequestInterceptor</code> within the <code>RestClient</code> used by <code>McpMetadataDiscoveryService</code> and <code>DynamicClientRegistrationService</code> to prevent unauthorized URL access.</li>
<li>Deploy the Sigma rule &ldquo;Detect Spring AI MCP SSRF via DCR&rdquo; to identify potential exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ssrf</category><category>spring-ai</category><category>oauth</category><category>cve-2026-45609</category></item></channel></rss>