Back to skill

Security audit

Figma设计工具v2

Security checks for vulnerabilities and agentic risk

Overview

This Figma skill is not overtly malicious, but it asks for broad read, write, and command execution authority while its scope and side effects are unclear.

Review this skill carefully before installing. Use it only in a constrained sandbox, avoid granting broad command execution or write access unless needed, and do not provide sensitive Figma or local credentials unless you trust the publisher and understand which files and Figma resources it may access or modify.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:19
Finding

Overbroad Filesystem and Command-Execution Permissions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 19-22
Vulnerability Type: Excessive tool permissions and violation of least privilege
Risk Level: Medium

Vulnerable Code

yaml
tools:
- read
- exec
- write

Technical Analysis

The skill requests filesystem read access, filesystem write access, and command-execution capability. Its stated purpose is integration with the Figma API, but the package contains no implementation or concrete workflow demonstrating a legitimate requirement for unrestricted local file modification or shell execution.

Granting exec and write substantially increases the skill's authority beyond what is inherently necessary for querying a remote design API. The document mentions command allowlisting and sandboxing as recommended safeguards, but it does not define an enforceable command allowlist, permitted argument patterns, filesystem boundaries, or input-validation controls.

This is a least-privilege weakness rather than evidence of an embedded malicious payload. The reviewed file contains no command that directly exploits these permissions. Exploitation would depend on the hosting agent treating the declared tools as authorization and allowing user-controlled task content to influence tool calls.

Attack Path

  1. An agent loads the skill and grants the declared read, write, and exec tools.
  2. An attacker or untrusted user submits a crafted request presented as a Figma automation or file-processing task.
  3. Because no enforceable command or path restrictions are defined, the request may steer the agent into invoking shell commands or accessing unrelated local files.
  4. The agent could read data outside the intended Figma workflow, overwrite accessible files, or execute commands with the operating-system privileges of the agent process.
  5. Any resulting compromise remains bounded by the sandbox, filesystem permissions, and process privileges enforced ...[truncated 714 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove exec and write from the tool declaration unless specific, documented Figma operations require them.
  2. Prefer a narrowly scoped Figma API tool instead of general-purpose shell and filesystem tools.
  3. If local writes are required for image export, restrict them to a dedicated output directory and reject absolute paths, traversal sequences, and symbolic-link escapes.
  4. If command execution is unavoidable, define an enforceable allowlist of exact executables and argument schemas. Do not invoke a shell or concatenate user-controlled values into command strings.
  5. Require explicit user confirmation before destructive writes, overwrites, or execution of commands with effects outside the designated workspace.
  6. Run the skill in a sandbox with minimal operating-system permissions, no unnecessary credentials, restricted network access, and a read-only project filesystem where feasible.
  7. Document the exact operations requiring each tool and validate every user-controlled file path, node identifier, URL, and command argument before use.
  8. Add automated tests confirming that requests cannot access files outside approved directories or execute commands outside the allowlist.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The invocation guidance is overly broad and explicitly suggests using the skill for generic efficiency, automation, batch processing, and workflow optimization, rather than narrowly scoping it to Figma-specific tasks. In agent-routing contexts, this can cause the skill to be selected for unrelated requests, increasing the chance that file I/O, command execution, or API-connected actions are applied inappropriately to user data or system state.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The documentation says the skill provides '自动化版本对比和合并功能' (automated version comparison and merge), but elsewhere the skill's own feature list and summary only mention '查看版本历史' (view version history). This is an active contradiction in the skill documentation about what the code/skill is intended to do, not merely an omitted detail.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

These lines state the skill supports '自动化组件搜索与替换' (automated component search and replace), while the main summary and feature description only mention checking or inspecting components/component sets/styles. Search-and-replace is materially different from inspection and implies modification capability beyond the documented core intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The FAQ says the skill supports Chinese interaction and presents that as the default user experience, but it does not offer a language choice or explain why the skill is limited to Chinese. This can violate language or locale policy when users are not given an opt-in or alternative.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill advertises file processing, external API integration, and command execution, but it does not present a prominent user-facing warning about side effects such as modifying files, executing system commands, contacting remote services, or exposing sensitive design data. In an agent environment, that omission can lead users to authorize or trigger impactful actions without informed consent, especially since the skill also has broad invocation language and includes exec/write capabilities.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.