mcp-security provides Security and Authorization support for Model Context Protocol in Spring AI. Prior to 0.1.9, the mcp-security framework fails to implement the mandatory SSRF mitigations outlined in the Model Context Protocol (MCP) security specifications. Specifically, it processes untrusted URLs for OAuth-related discovery and metadata without verifying if the targets are malicious or internal to the network. This only affects installations with Dynamic Client Registration (DCR) enabled This vulnerability is fixed in 0.1.9.
Security readout for executives and security teams
Plain-English summary
mcp-security before 0.1.9 can be tricked into fetching attacker-supplied OAuth discovery or metadata URLs. In deployments using Dynamic Client Registration, this can let outsiders make the server contact internal or malicious network locations.
Executive priority
High priority for teams running MCP services with Dynamic Client Registration. The flaw can expose internal network targets through server-side requests, but the current sources do not indicate confirmed active exploitation.
Technical view
This is an SSRF flaw in spring-ai-community mcp-security. The framework did not apply mandatory MCP SSRF protections when processing untrusted OAuth-related URLs. Affected versions are before 0.1.9, only where Dynamic Client Registration is enabled.
Likely exposure
Exposure is limited to applications using spring-ai-community mcp-security before 0.1.9 with Dynamic Client Registration enabled. The source bundle does not identify affected downstream applications or default deployment settings.
Exploitation context
The CVE has network attack vector, low complexity, no privileges, and no user interaction. The source bundle and KEV status do not show active exploitation. Treat exploit status as unconfirmed.
Researcher notes
The advisory attributes impact to missing MCP-mandated SSRF mitigations around OAuth discovery and metadata URLs. Analysis should focus on DCR-enabled flows and whether untrusted URLs can reach internal or attacker-controlled targets.
Mitigation direction
Upgrade mcp-security to version 0.1.9 or later.
Disable Dynamic Client Registration where it is not required.
Review the GitHub advisory for vendor-specific guidance.
Prioritize internet-facing MCP or OAuth-enabled services first.
Validation and detection
Inventory applications using spring-ai-community mcp-security.
Confirm deployed mcp-security versions are 0.1.9 or later.
Check whether Dynamic Client Registration is enabled.
Review logs for unexpected OAuth discovery or metadata fetches.
Verify remediation against the GitHub advisory and CVE record.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-918: Information exposure and cloud metadata lookup
Information exposure and SSRF weaknesses can make discovery, cloud metadata, and credential material review relevant. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references SSRF or metadata access, so cloud discovery and credential material review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.