Back to skill

Security audit

Npc Dialogue Rehearser

Security checks for vulnerabilities and agentic risk

Overview

This skill generates local conversation-rehearsal text and shows documentation inconsistencies, but no hidden access, persistence, network use, or destructive behavior.

Before installing, understand that the skill is a lightweight local text generator for rehearsing conversations. Its documentation is somewhat inconsistent about whether it is for real-world conversations or tabletop NPC writing, so users should verify it matches their intended use and avoid relying on it for legal, medical, violent, abusive, or other high-risk situations.

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
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · handler.py (reported line 63)May include surrounding context.

python
def _load_prompt_template(skill_name):
    return PROMPT_TEMPLATE


def _clean_text(value: Any) -> str:

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest describes a skill for rehearsing real-world conversations with likely counterpart styles and explicitly frames it as help with boundaries, needs, and mildly stressful interactions. However, the documented scenarios on these lines repurpose the skill for fictional innkeeper NPC dialogue generation and NPC voice-diversity diagnosis, which is a different creative-writing/game-mastering function rather than real-world conversation support.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The top-level documentation says the skill is for practicing wording before a real conversation and respecting real relationships. That stated intent is contradicted by later examples showing innkeeper NPC scripting, villain improv, and session-note voice analysis, which are not real-world conversation rehearsal tasks.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The 'Use this skill when...' section includes broad everyday intents like asking for help, expressing a boundary, or preparing for a tense conversation, without explicit exclusions or negative examples. In a markdown skill description, this can make the trigger scope ambiguous and overlap with many common user requests unrelated to this specific rehearsal skill.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest and overview consistently frame the skill as helping a user prepare for real conversations such as asking for help, setting boundaries, or handling mildly tense interactions. The later usage scenarios instead describe generating in-character dialogue for innkeepers and villains, plus analyzing RPG session notes, which is a materially different purpose than rehearsing real-world counterpart styles.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The title and usage scenarios switch between Chinese and English, and Scenario 1 is entirely presented in Chinese while other parts are in English. Because the README does not state that the skill adapts to the user's preferred language or lets the user choose, this can be read as imposing language behavior without explicit opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The file explicitly introduces a Chinese name and later includes a Chinese usage scenario and expected output, but does not state that language should follow the user's preference. This can create an implicit language/locale bias in skill behavior without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The scenario and expected output are entirely in Chinese, but the skill description does not clarify whether output language should match user preference or input language. Under the language/locale policy rule, fixed-language guidance can be a policy concern when not explicitly optional.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.