Back to skill

Security audit

Coc Keeper

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Call of Cthulhu game-hosting helper with local character, dice, rule-reference, and game-state files; I found no hidden exfiltration, persistence, or destructive behavior outside the stated game workflow.

Install only if you want a Chinese-oriented COC Keeper workflow that stores campaign notes and player state locally. Use a dedicated campaign folder, review the default KP persona before play, and avoid pointing the skill at unrelated private documents as module material.

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (20)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

声明描述的是一个用于主持 COC 跑团的 agent 技能,预期应包含剧情主持、规则辅助、对话交互等跑团主持相关能力。而实际代码仅实现了角色卡属性解析与格式化导出,核心用途是处理人物属性数据并生成人物卡文件,不涉及主持跑团流程。代码还具备本地文件读取与写入能力(批量处理输入文件、保存 Markdown 文件),这些能力在声明中没有体现。虽然主题同属 COC 场景,但主要目的和实际行为存在明显偏差,因此应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

声明描述的是一个让 agent 作为 KP 主持 COC 跑团的完整技能,通常应包含跑团流程控制、规则辅助、剧情/检定主持等行为。实际代码只包含一个简单的骰子脚本:解析诸如 1d20、2d6 或 100 的输入并输出随机结果。虽然掷骰是 COC 跑团的相关辅助功能,但它只是其中一个很小的子能力,无法支撑“作为 KP 主持 COC 跑团”的主要用途。因此描述与实际行为存在明显不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

声明描述的核心用途是让 agent 扮演 KP 主持 COC 跑团,这通常意味着剧情主持、规则推进、互动控制等能力。而实际代码仅处理玩家导出的角色属性文本,完成解析、比对和人物卡生成,属于角色数据处理工具。二者主用途存在明显差异。代码还具备文件保存和命令行输入处理等能力,这些也未在声明中体现。虽然都属于 COC 相关场景,但该代码并不能体现“主持跑团”的主要功能,因此应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
玩家需要提供或创建一个初始角色卡。如果玩家选择创建角色卡,将 `character-creator.html` 文件发送给玩家,让玩家在浏览器中打开该网页创建角色。该网页支持:

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding

The skill instructs the agent to read and write multiple local files and maintain persistent game state, but it declares no explicit tool scope or permissions boundary. In an agent runtime, that means the model may be granted broader filesystem access than users expect, increasing the chance of unintended file access, overwrite, or persistence abuse.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Line L037 instructs the agent to narrate in the KP's first-person voice, and the entire skill document is written as Chinese-only operating instructions with no option for the user to choose another language. This creates a language/locale policy issue because the skill effectively constrains interaction style and language without documenting user choice or opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This file contains user-facing natural-language text exclusively in Chinese, including the module docstring and command-line help. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The CLI interface prints all usage guidance and examples in Chinese only. Because this is user-facing operational text and the file does not offer a language selection or justify a Chinese-only scope, it violates the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file presents all instructional content in Chinese and does not indicate that the user can choose another language. Under the policy for natural-language issues, forcing a specific language without user opt-in is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents all instructions and guidance exclusively in Chinese, which can violate a language/locale policy when no user opt-in or alternative language option is provided. The document does not state that it is intentionally region-specific or limited to Chinese-speaking users.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest describes a skill for helping an agent act as a KP主持 and run CoC sessions, but this file is a detailed roleplay persona sheet for a catgirl maid character unrelated to Call of Cthulhu facilitation, rules adjudication, or scenario hosting. This is a semantic mismatch between the declared skill purpose and the actual bundled behavior/instructions implied by the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file specifies that the persona should use a '日语翻译腔' style and Japanese honorific forms such as '店長さん' and '店長さま'. That imposes a specific language/locale style on outputs, and the file does not offer user opt-in or explain a justified regional requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill description and usage instructions are entirely in Chinese, including the core description and operational steps. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation when no alternative language option or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document is initialized with lang="zh-CN", making Chinese the default presentation language on load. Although a manual language toggle exists later, the file still starts in a specific locale without asking the user or detecting preference first.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The module docstring and usage examples are entirely in Chinese, and the runtime error/help output is also Chinese-only. For a general-purpose utility, this imposes a specific language on users without opt-in or an explicit justification that the skill is intended only for a Chinese-speaking context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

When parsing fails, the script prints only Chinese-language error guidance. This is a natural-language policy concern because it hardcodes a locale choice in user-facing output rather than allowing user selection or documenting a justified locale restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

该技能文件全文以中文编写,且未说明这是面向特定中文用户群体或区域的限定内容,也没有提供可选语言方案。按规则,强制特定语言而无用户选择或明确、合理的地域性说明,可构成语言/locale 政策问题。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

该技能文档标题与全文内容均仅以中文呈现,没有说明这是面向特定中文用户群体的区域性/语言限定内容,也没有提供用户可选择其他语言的提示。根据规则,强制单一语言且无用户选择或合理范围说明,属于自然语言层面的语言/locale 政策风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

SQP-3 applies to all file types and covers natural-language policy violations such as forcing a specific language without user opt-in. This markdown file presents all instructions and content exclusively in Chinese, with no indication that the skill is region-specific or that users can select another language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The entire skill content is written in Chinese, including headings, rules, and gameplay guidance, with no indication that users may choose another language or that the skill is intended only for a Chinese-speaking or region-specific audience. Under the policy, language constraints should be opt-in or clearly justified.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.