Back to skill

Security audit

TierList Maker

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently helps users create TierVibe tier lists, with disclosed local output files and user-controlled publishing.

Before installing, expect the skill to create local handoff files and to send the completed board to tiervibe.com when you open the launcher and publish. Do not use private or sensitive local images unless you are comfortable with them being embedded in the board and uploaded to TierVibe's CDN during publishing.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill advertises very broad trigger phrases such as generic ranking and tier-list requests, which can cause it to activate in contexts where the user did not explicitly ask to create an external TierVibe board or have files written locally. That increases the chance of unintended tool use, external-site navigation, and local artifact creation based on ambiguous requests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to write launcher.html and, in some flows, manifest files to disk, but it does not require obtaining explicit user consent or warning the user before creating local files. Silent file creation is risky because it changes the user's filesystem and can surprise users who expected only conversational assistance.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- **Default: dark board, `bgBrightness` 0-10.** This is what a tier list is expected to look like, and it is TierVibe's own platform default (every list starts dark; exactly one preset differs). Saturated or deep card colors **glow** against a dark board.
   - **Exception: light board, 90-97 — only when the cards are pale and low-saturation** (dark text on a pastel/tinted bg). Those wash out on a dark board, so they need a light one.
   - **Do NOT send saturated cards to a near-white board.** The old rule said to, by symmetry ("dark cards → light board"). In practice high-saturation blocks on near-white read hard-edged and cheap, and lose the glow entirely. Real feedback from a finished board: the author's first action was to change a derived `bgBrightness: 94` back to black.
   - Don't ask the user separately for "light or dark board" in Step 2 — it's decided here. Their Step 2 answer ("light/dark feel") is a STYLE hint (moody vs clean), not the `bgBrightness` value.

2. **Tier title bars form a gentle gradient top→bottom** (e.g. warm at top → cool at bottom for a best→worst feel). Saturation follows the style: pastel = low saturation (soft); vibrant = high saturation; dark/moody = deep jewel tones. Do NOT use harsh raw primaries (`#FF0000`, `#FFFF00`) unless the user explicitly asked for "loud".

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The example instructs the agent to automatically open a browser URL containing generated content without an explicit confirmation step. Even though the payload is just TierVibe JSON encoded into the URL, automatic browser launching is a side effect that can surprise users, trigger navigation to external sites, and normalize clickless execution patterns that become riskier if reused in other skills.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The example says the agent should respond in Chinese 'to match the list' without confirming the user's language preference. This can mislead or exclude users, increase the chance they miss important instructions such as publishing or login prompts, and is especially problematic when paired with an automatic browser-opening workflow.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explicitly encourages embedding local images as data:image URLs and states that publish uploads them to the platform CDN, but it does not prominently warn that embedded image contents will be transferred off the local machine and made available remotely upon publish. In this skill context, users may reasonably treat data URLs as a local-only convenience, so the omission increases the risk of accidental disclosure of sensitive image content or metadata when the board is later published.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/import-flow.md (reported line 7)May include surrounding context.

md
matches reality.

**The single path is a `launcher.html` redirect - never an OS open command, never a file drop.** `SKILL.md` → "Emit + hand off via launcher.html"
is the source of truth: you base64 the JSON into `#data=`, write a `launcher.html` that redirects to it, and the user opens that file. Do NOT ask the user to drag the JSON or paste the URL into chat - the launcher.html already carries the data; the file drop below exists only for the rare oversized board.

## Path A — launcher.html redirect via `#data=` (the only normal path)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file includes fixed Chinese interface text such as 点击选择或拖入文件 and 正在导入…, and later uses 发布 in the English template, which can amount to forcing a specific locale in instructions. SQP-3 applies because the file mixes mandatory Chinese wording without documenting a justified locale constraint or clearly offering language/locale choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The text states that 'henz is Chinese-only' for tier names, which is a natural-language locale restriction. Under the policy, forcing a specific language is a violation unless the skill offers user choice or clearly documents a justified region-specific constraint.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/tier-config.md (reported line 86)May include surrounding context.

md
hard-edged and cheap and lose the glow — on a real finished board the author's
  first move was to change a derived `94` straight back to black.

Do not ask the user for "light or dark board" as a separate question, and do not
copy a value from a preset or an example.

## Choosing `fontSize` (always set it)

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The text refers to the user clicking '发布 (Publish)', which hard-codes a Chinese UI label in the instructions. This can be a locale/language policy issue because the document does not indicate that language is selectable, optional, or region-specific.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The document instructs the skill to write a launcher.html file, and later references saving a manifest next to it, but it does not warn the user that local files will be created on their system. For markdown files, SQP-2 applies when user-visible documentation omits warnings about behaviors affecting user data or system state.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The rare fallback path relies on a saved file for drag-and-drop import, but the documentation does not explicitly warn that a local file will be generated and must be handled by the user. This is a user-data/system-state affecting behavior that should be disclosed in markdown guidance.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This JSON template contains user-facing text entirely in Chinese, including the title, tier names, and card descriptions, with no indication that the locale is optional or region-specific. Under the policy rule for natural-language violations, forcing a specific language without user opt-in should be flagged.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.