CVE-2026-39885
SSRF and Local File Read in FrontMCP mcp-from-openapi
Publication date: 2026-04-08
Last updated on: 2026-04-15
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| agentfront | frontmcp | to 1.0.4 (exc) |
| agentfront | @frontmcp/adapters | to 1.0.4 (exc) |
| agentfront | @frontmcp/sdk | to 1.0.4 (exc) |
| frontmcp | mcp-from-openapi | to 2.3.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-918 | The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
The vulnerability exists in the mcp-from-openapi library used by FrontMCP, a TypeScript-first framework for the Model Context Protocol (MCP). Prior to version 2.3.0, this library uses @apidevtools/json-schema-ref-parser to dereference $ref pointers in OpenAPI specifications without any restrictions on URLs or custom resolvers.
This means that if a malicious OpenAPI specification contains $ref values pointing to internal network addresses, cloud metadata endpoints, or local files, the library will fetch those resources during the initialize() call.
As a result, this behavior enables Server-Side Request Forgery (SSRF) and local file read attacks when processing untrusted OpenAPI specifications.
The vulnerability is fixed in version 2.3.0 of the library.
How can this vulnerability impact me? :
This vulnerability can impact you by allowing an attacker to perform Server-Side Request Forgery (SSRF) attacks and read local files on the server where the vulnerable library is used.
An attacker can craft a malicious OpenAPI specification that causes the server to make unauthorized requests to internal network resources, cloud metadata services, or access sensitive local files.
This can lead to exposure of sensitive information, unauthorized access to internal systems, and potential further exploitation depending on the data accessed.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, upgrade the mcp-from-openapi library to version 2.3.0 or later, where the issue is fixed.
Avoid processing untrusted OpenAPI specifications with vulnerable versions of the library to prevent Server-Side Request Forgery (SSRF) and local file read attacks.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
This vulnerability enables Server-Side Request Forgery (SSRF) and local file read attacks when processing untrusted OpenAPI specifications. Such unauthorized access to internal network resources or sensitive files could potentially lead to exposure of personal or protected data.
As a result, organizations using affected versions may face increased risk of data breaches or unauthorized data access, which could impact compliance with standards and regulations like GDPR or HIPAA that require protection of sensitive information.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by monitoring for unexpected outbound HTTP requests or local file reads triggered by the vulnerable library when processing OpenAPI specifications containing malicious $ref pointers.
To detect exploitation attempts or the presence of this vulnerability, you can look for network requests to internal IP addresses (e.g., 169.254.169.254 for cloud metadata) or unusual file access patterns related to file:// URLs.
Suggested commands to detect suspicious activity include:
- Use network monitoring tools like tcpdump or Wireshark to capture outbound HTTP requests to internal or unusual IP addresses, for example: tcpdump -i any host 169.254.169.254 or tcpdump -i any port 9997
- Check application logs for calls to the OpenAPIToolGenerator.initialize() function or logs indicating dereferencing of $ref pointers.
- Use system auditing tools (e.g., auditd on Linux) to monitor file access to sensitive files such as /etc/passwd that might be read via file:// URLs.
- If you have access to the source code or runtime environment, add logging around the dereference() method calls of the json-schema-ref-parser library to detect when external URLs or local files are being fetched.