Back to skill

Security audit

Markdown-UI DSL: Zero-Hallucination UI Generation

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a Markdown wireframing helper, but it also permits source-file synchronization and confirmation bypasses that users should review carefully before installing.

Install only if you want a skill that can synchronize Markdown UI specs with frontend source files. Review any requested sync carefully, avoid using force sync or without confirmation unless you are comfortable with unattended edits, and keep changes under version control so they can be reviewed or reverted.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Ssd 1

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly instructs the agent to bypass user confirmation when prompts include terms like 'autonomously', 'without confirmation', or 'force sync'. This is a dangerous prompt-level override of a safety mechanism, enabling social-engineering-style coercion into writing or overwriting files with no durable authorization control.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill’s stated purpose is generating Markdown wireframes, but it also authorizes two-way synchronization that edits code files and spec files. That expands the trust boundary from content generation into filesystem modification, creating a path for unintended or user-coerced changes to project artifacts.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
88% confidence
Finding

The instruction set grants the skill autonomous decision-making around whether to proceed with file updates without confirmation under certain prompt conditions. In a skill that can locate and rewrite project files, that autonomy increases the chance of unauthorized, unsafe, or unexpected modifications.

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

md
2. If given a `.ui.md` spec, read the components deterministically. Translate rows into horizontal layouts (e.g., CSS `flex-row`, Flutter `Row()`) and columns into vertical layouts (e.g., CSS `flex-col`, Flutter `Column()`) depending on the requested frontend framework.
3. When translating to code, if a `theme` or `framework` is specified in the YAML frontmatter, adhere strictly to those design tokens, component libraries, and visual guidelines.
4. **Auto-Synchronization (Two-Way Binding):** 
   - **Important Security Rule:** By default, before making any file modifications or overwriting existing code/wireframes during a sync, explicitly inform the user of the planned changes and ask for visual confirmation to proceed. *However, if the user explicitly instructs you to operate "autonomously", "without confirmation", or "force sync" in their prompt, you may bypass this check.*
   - **Spec -> Code:** Treat the `.ui.md` file as the master. Locate the frontend component (strictly using the absolute or relative path defined in the `component:` YAML key) and safely update the code to reflect the wireframe.
   - **Code -> Spec:** Treat the component as the master. Locate the original wireframe (strictly using the `// UI Spec:` comment at the top of the code) and safely update the `.ui.md` file backwards to match the new design.
   - **Drift Resolution:** If you detect the two files are out of sync, ask the user which file is the source of truth *unless operating autonomously*. If autonomous and unsure, halt the sync process and throw a clear warning rather than making a destructive guess.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The autonomous overwrite behavior is not necessary for a wireframing DSL and enables destructive modifications beyond the advertised function of the skill. In practice, a user prompt could trigger silent edits to source code or wireframe files without adequate review, increasing the risk of tampering or accidental loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Permitting file modifications without confirmation in an autonomous mode weakens a core safety control against unintended writes. Because the bypass is triggered by simple user phrasing, an attacker or careless user can cause the agent to modify files without a second check or human review.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.