{"id":"CVE-2026-59973","revision":"54ed5917e0d347eaaba38469a183f738","records":[{"revision":"54ed5917e0d347eaaba38469a183f738","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-59973","aliases":[],"title":"mcp-from-openapi: Bypass of OpenAPI external $ref SSRF fix in latest FrontMCP and mcp-from-openapi","description":"FrontMCP is a TypeScript-first framework for the Model Context Protocol (MCP). From mcp-from-openapi 2.3.0 until 2.5.0 and from frontmcp and @frontmcp/adapters 1.2.1 until 1.5.0, libs/adapters/src/openapi/openapi.adapter.ts loadOpenAPISpec() forwards untrusted OpenAPI url and spec inputs and loadOptions.refResolution to OpenAPIToolGenerator.fromURL() and OpenAPIToolGenerator.fromJSON(). The external $ref guard checks parsed hostname strings without resolving addresses, pinning validated addresses, revalidating redirect targets, or normalizing IPv4-mapped IPv6. An authenticated user who can import or configure an OpenAPI specification in a hosted or multi-user deployment can use DNS-to-loopback resolution, redirect-to-loopback behavior, or IPv4-mapped IPv6 loopback forms to cause backend-origin requests to internal services. This can expose internal administrative APIs, metadata-like services, and other private network endpoints. The practical impact is lower when only a trusted local administrator can configure OpenAPI specs, and disabling external reference protocols prevents the external $ref request. This issue is fixed in mcp-from-openapi 2.5.0 and frontmcp and @frontmcp/adapters 1.5.0.","state":0,"publishedAt":"2026-09-15T15:13:40.053+00:00","modifiedAt":"2026-09-16T16:06:53.148+00:00","affected":[{"ecosystem":"Vendor product","name":"frontmcp","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"agentfront\",\n                    \"product\": \"frontmcp\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 1.5.0\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"mcp-from-openapi","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"agentfront\",\n                    \"product\": \"mcp-from-openapi\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 2.5.0\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"adapters","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"@frontmcp\",\n                    \"product\": \"adapters\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 1.5.0\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N","score":8.5,"severity":"HIGH"}],"references":["https://github.com/agentfront/frontmcp/security/advisories/GHSA-65h7-9wrw-629c","https://github.com/agentfront/frontmcp/pull/496","https://github.com/agentfront/mcp-from-openapi/pull/7","https://github.com/agentfront/frontmcp/commit/96a78eaa5c6c4bc51cced557d83d1a03344cb03d","https://github.com/agentfront/mcp-from-openapi/commit/be3409cce6e97642696d4ee5a4e4e2712490b277","https://github.com/agentfront/frontmcp/releases/tag/v1.5.0","https://github.com/agentfront/mcp-from-openapi/releases/tag/v2.5.0"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-59973","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-59973","identifiers":["CVE-2026-59973"]},"retained":false,"historicalAffected":[]}],"coverage":[]}