Security Audit
figma-implement-design
github.com/davila7/claude-code-templatesTrust Assessment
figma-implement-design received a trust score of 63/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 4 findings: 0 critical, 2 high, 1 medium, and 1 low severity. Key findings include Network egress to untrusted endpoints, Covert behavior / concealment directives, Direct use of unsanitized user input in tool calls.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 12, 2026 (commit 458b1186). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings4
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Direct use of unsanitized user input in tool calls The skill instructs the agent to extract `fileKey` and `nodeId` directly from user-provided Figma URLs (e.g., `https://figma.com/design/:fileKey/:fileName?node-id=1-2`). These extracted values are then used as parameters in tool calls such as `get_design_context(fileKey=":fileKey", nodeId="1-2")`, `get_screenshot`, and `get_metadata`. Without explicit sanitization or validation of these parameters by the agent before invoking the tools, a malicious user could craft a URL containing prompt injection payloads (if the tools are LLM-powered) or command injection payloads (if the tools execute shell commands), potentially leading to unauthorized actions or data exposure. The skill does not provide any instructions for sanitizing these inputs. Implement robust input validation and sanitization for `fileKey` and `nodeId` extracted from user URLs before passing them to any tools. Ensure that the tools themselves are designed to handle untrusted input safely, e.g., by strictly typing parameters and rejecting malformed values. | LLM | SKILL.md:70 | |
| HIGH | Instruction to directly use unvalidated `localhost` asset sources The skill explicitly instructs the agent to "use that source directly" if the Figma MCP server returns a `localhost` URL for an image or SVG asset. This instruction implies fetching content from the provided `localhost` URL without further validation of its scheme, host, or path. If a malicious Figma file (or a compromised Figma MCP server) could craft a `localhost` URL (e.g., `http://localhost:8080/api/secrets`, `file:///etc/passwd`, or a URL that triggers a local command), the agent, by following this instruction, could inadvertently exfiltrate sensitive local data or execute arbitrary commands on the host system. Implement strict validation for all URLs, especially `localhost` URLs, before fetching assets. Restrict allowed schemes (e.g., only `http`, `https`), hosts (e.g., only specific `localhost` ports/paths known to be safe for the MCP server), and prevent access to local file paths (`file://`). Consider sandboxing the asset fetching mechanism. | LLM | SKILL.md:99 | |
| MEDIUM | Network egress to untrusted endpoints HTTP request to raw IP address Review all outbound network calls. Remove connections to webhook collectors, paste sites, and raw IP addresses. Legitimate API calls should use well-known service domains. | Manifest | cli-tool/components/mcps/devtools/figma-dev-mode.json:4 | |
| LOW | Covert behavior / concealment directives Multiple zero-width characters (stealth text) Remove hidden instructions, zero-width characters, and bidirectional overrides. Skill instructions should be fully visible and transparent to users. | Manifest | cli-tool/components/mcps/devtools/jfrog.json:4 |
Scan History
Embed Code
[](https://skillshield.io/report/e4cc5982c568812b)
Powered by SkillShield