CVE-2025-53967: figma-developer-mcp vulnerable to command injection in get_figma_data tool
7.5
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| figma-developer-mcp | npm | <= 0.6.2 | 0.6.3 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability is a command injection in the figma-developer-mcp server. The root cause is the use of child_process.exec in the fetchWithRetry function in src/utils/fetch-with-retry.ts. This function constructs a curl command using a URL that can be controlled by user input. An attacker can inject shell commands into the URL, which will then be executed by the server.
The primary vulnerable function is fetchWithRetry. The patch replaces the vulnerable exec with execFile, which prevents command injection by separating the command from its arguments.
The get_figma_data tool is explicitly mentioned as a vector for this vulnerability. The handler for this tool is the getFigmaData function in src/mcp/tools/get-figma-data-tool.ts. This function takes user input and passes it to the vulnerable fetchWithRetry function. The patch adds input validation to the fileKey parameter in this function.
Similarly, the download-figma-images tool, handled by the downloadFigmaImages function, also takes user input that is used to construct a URL. The patch adds validation to the nodeId parameter in this function, suggesting it was also a potential vector for the command injection vulnerability.
Therefore, a runtime profile during exploitation would likely show getFigmaData or downloadFigmaImages calling fetchWithRetry.
Vulnerable functions
fetchWithRetrysrc/utils/fetch-with-retry.ts
getFigmaDatasrc/mcp/tools/get-figma-data-tool.ts
downloadFigmaImagessrc/mcp/tools/download-figma-images-tool.ts