Back to skill

Security audit

Figma Studio Free

Security checks across malware telemetry and agentic risk

Overview

This Figma helper is mostly purpose-aligned, but its free/read-only framing conflicts with a built-in example that can post comments to shared Figma files.

Review this skill before installing if you expect a strictly read-only Figma helper. Only use the comment-posting path when you intentionally want to modify a Figma file, and require the agent to show the target file, node, and comment text before executing any write operation.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The skill markets the free edition as read-oriented/read-only, yet it includes executable code that posts comments and modifies remote Figma resources. This mismatch can cause users or agents to perform state-changing actions under the assumption that the skill is non-destructive, increasing the risk of unintended writes to shared design assets.

Intent-Code Divergence

High
Confidence
97% confidence
Finding
The FAQ claims the free edition provides only read-only functions, but the comment-management example performs POST requests that alter Figma data. This deceptive inconsistency is dangerous because it undermines user expectations and agent safety policies, making accidental modification of production design files more likely.

External Transmission

Medium
Category
Data Exfiltration
Content
payload = {'message': message}
    if node_id:
        payload['client_meta'] = {'node_id': node_id, 'node_offset': {'x': x, 'y': y}}
    resp = requests.post(f'{FIGMA_BASE}/files/{file_key}/comments', 
                         headers={**headers, 'Content-Type': 'application/json'},
                         json=payload, timeout=30)
    resp.raise_for_status()
Confidence
91% confidence
Finding
requests.post(f'{FIGMA_BASE}/files/{file_key}/comments', headers={**headers, 'Content-Type': 'application/json'}, json=

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.