Back to skill

Security audit

阴阳岛肉鸽

Security checks for vulnerabilities and agentic risk

Overview

This is a browser-based Chinese roguelike game, with only ordinary game-state storage and no evidence of system access, exfiltration, or hidden unsafe behavior.

Before installing, users should know this is a Chinese-language browser game that stores progress locally in the browser and loads a font from Google. The broad trigger phrases may be less precise than ideal, but the inspected artifacts do not show hidden system access, credential handling, destructive behavior, or data exfiltration.

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
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Rogue AgentSelf-Modification, Session Persistence
  • 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
Findings (10)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
直接打开 `index.html` 即可游玩。

Unvalidated Output Injection

High
Category
Output Handling
Confidence
80% confidence
Finding

Model output is used without validation or sanitization. Unvalidated output injected into downstream contexts (SQL, shell, HTML) enables injection attacks and arbitrary code execution.

Content

Scanner excerpt · index.html (reported line 1064)May include surrounding context.

html
}
        output += '\n';
      }
      document.getElementById('game').innerHTML = output;
    }
    
    function move(dx, dy) {

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · index.html (reported line 2070)May include surrounding context.

html
document.getElementById('floor').innerText = floor;
      document.getElementById('energy').innerText = `${player.energy}/${player.maxEnergy}`;
      
      // Update skill buttons state
      if (player.class) {
        const skills = SKILLS[player.class];
        skills.forEach(skill => {

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file is written entirely in Chinese and the title immediately frames the interface specification in that language, but there is no statement that the skill is China-specific, optional by user preference, or otherwise locale-justified. Under the language/locale policy rule, forcing a specific language without opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases include very generic commands such as “打开游戏” and “玩肉鸽”, which can plausibly appear in normal conversation and overlap with requests intended for other game-related skills. Overly broad invocation phrases increase the chance of accidental activation or routing ambiguity, which can cause unintended skill execution even though the skill itself appears harmless.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The document declares lang="zh", and the interface text throughout the file is exclusively Chinese, with no indication that this locale limitation is optional or region-specific. This can violate language/locale policy when users are not given a choice or explicit opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
72% confidence
Finding

All user-facing instructions and trigger phrases are written exclusively in Chinese, and the file does not indicate that the skill is region-specific or that users can choose another language. This can be a natural-language policy concern when a skill implicitly forces a specific language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file presents the skill specification exclusively in Chinese, including headings, controls, and acceptance criteria. Under the policy rule for language/locale, forcing a specific language without user opt-in or justification can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code comments and function name describe a three-choice interaction with the mysterious elder, implying the player can choose among options. However, the implementation explicitly states '简化版:直接随机执行一个' and randomly executes one action, which changes the intended behavior from player choice to forced randomness.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This code persists gameplay data, achievements, and cycle progress to localStorage, which is a client-side data write operation. While the save/load buttons and success logs indicate the action occurred, there is no user-facing warning that data will be stored locally and retained across sessions.

Content

No source excerpt is available for this finding.