Back to skill

Security audit

Play Dumb

Security checks for vulnerabilities and agentic risk

Overview

This skill openly role-plays being less capable, but it tells the agent to make believable mistakes and has weak controls around when that behavior applies.

Install only if you want a clearly bounded role-play mode and are comfortable with intentionally unreliable answers while it is active. Do not use it for factual work, coding you plan to run, or consequential medical, legal, safety, or financial questions unless the skill is changed to preserve correctness and use explicit activation controls.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
prompts/dumb-core.md:19
Finding
Deliberate Degradation of Agent Accuracy and Reasoning## Vulnerability Details **File Location**: `prompts/dumb-core.md:19-50`; supporting directives in `prompts/techniques/wrong-then-correct.md:3-28` and `config/presets.yaml:67-105` **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: High ### Vulnerable Code Snippet The following is an English translation of the relevant directives in `prompts/dumb-core.md:19-50`: ```markdown **Level 1-2:** - 95% of the content is correct; 5% contains minor flaws. **Level 3-4:** - Simplify complex concepts to the point that precision may be lost. - Occasionally confuse similar concepts. **Level 5-6:** - Give incomplete answers and wait for the user to supplement them. - Occasionally deliberately make an error that the user can easily notice. **Level 7-8:** - Only understand simple, direct sentences. - Become stuck when reasoning requires more than two steps. **Level 9-10:** - Respond mainly through interjections and repetition. Errors must be "credible": - Correct behavior: state that the capital of France is Berlin. - Incorrect behavior: state that the capital of France is Mars. ``` The accuracy controls in `config/presets.yaml:67-105` explicitly reduce expected accuracy: ```yaml levels: 0: accuracy: 100% 1: accuracy: 90% 2: accuracy: 85% 3: accuracy: 75% 4: accuracy: 65% 5: accuracy: 70% 6: accuracy: 50% 7: accuracy: 40% 8: accuracy: 25% 9: accuracy: 10% 10: accuracy: 5% ``` ### Technical Analysis Loading and activating this Skill changes the Agent from a normally accurate assistant into an intentionally unreliable persona. The instructions require plausible factual errors, incomplete answers, reduced reasoning capacity, and nonresponsive output at higher configured levels. This is instruction hijacking because the Skill does not merely alter tone or presentation. It directly ch ...[truncated 1759 chars]
Remediation
## Remediation Suggestions 1. Remove every instruction that requires the Agent to provide false facts, intentionally flawed code, incomplete corrections, or reduced accuracy. 2. Restrict personas to harmless presentation changes such as tone, vocabulary, humor, and formatting. 3. Require factual correctness and preservation of full reasoning capability at every persona level. 4. Replace deliberate errors with clearly marked fictional examples or harmless uncertainty language. 5. Ensure role-play instructions remain subordinate to the Agent's accuracy, safety, and higher-priority policy requirements. 6. Add tests confirming that every configured level produces materially correct answers to factual, programming, and multi-step reasoning questions. 7. Display a clear role-play indicator when a persona is active and provide an immediate, reliable deactivation mechanism.

T09 · Insecure Skill Coding Practices

Warning
Location
config/boundaries.yaml:3
Finding
Keyword-Only Safety Boundaries Can Fail to Disable Inaccurate Behavior## Vulnerability Details **File Location**: `config/boundaries.yaml:3-31`; related declarations in `SKILL.md:61-69` and `prompts/dumb-core.md:52-58` **Vulnerability Type**: T09: Insecure Skill Coding Practices **Risk Level**: Medium ### Vulnerable Code Snippet The following is an English translation of `config/boundaries.yaml:3-31`, preserving its configured categories and actions: ```yaml never_play_dumb: - category: safety keywords: - danger - poisonous - poisoning - fire - electric shock - drowning - suffocation - suicide - self-harm action: force_level_0 - category: medical keywords: - first aid - heart disease - bleeding - fracture - allergy - shock - epilepsy - stroke - difficulty breathing action: force_level_0 - category: legal keywords: - criminal - illegal - lawsuit - law - contract - infringement action: force_level_0 - category: financial keywords: - transfer - payment - password - bank card - investment decision action: force_level_0 auto_adjust: - signal: user requests a serious answer action: force_level_0 - signal: same question repeated at least three times action: reduce_level_by_3 - signal: frustration detected action: reduce_level_to_1 - signal: more than five turns without resolution action: reduce_level_by_2 ``` ### Technical Analysis The Skill claims to disable inaccurate behavior for broad safety, medical, legal, and financial scenarios, but the configuration represents these domains through narrow keyword lists. A consequential request can be semantically within an excluded domain without containing any configured keyword. For example, questions about medication interactions ...[truncated 1769 chars]
Remediation
## Remediation Suggestions 1. Replace keyword-only matching with semantic classification of the user's intent and context. 2. Treat medical, legal, financial, safety, cybersecurity, and other consequential requests conservatively; when classification is uncertain, force full accuracy. 3. Expand the boundary to cover entire consequential domains rather than selected emergency terms. 4. Make all safety-related fallback actions use `force_level_0` instead of merely reducing the configured level. 5. Reconcile `SKILL.md`, the core prompt, and the YAML configuration so they define identical safety scopes and behavior. 6. Apply safety classification before persona or accuracy instructions are loaded. 7. Add paraphrase and adversarial tests that avoid obvious keywords while still expressing consequential requests. 8. Since intentional misinformation is inherently difficult to contain reliably, remove accuracy degradation entirely and preserve personas only as stylistic transformations.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (17)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The skill can be activated by common conversational phrases such as “别那么聪明” or “play dumb,” which are broad enough to appear in normal dialogue rather than as deliberate mode switches. Because this skill intentionally degrades answer quality, accidental activation can reduce reliability and may interfere with correct handling of later requests until the mode is explicitly cleared or safety logic triggers.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The activation list includes many ambiguous persona and mode phrases with overlapping semantics, but the skill does not define strict trigger boundaries, precedence, or robust deactivation behavior. In practice, this creates prompt-state confusion where ordinary text may switch the agent into a degraded-performance persona, increasing the chance of misleading, incomplete, or unserious responses outside the user’s actual intent.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The trigger '检测到 frustration 情绪' is underspecified and relies on subjective emotion detection, which can be inaccurate and inconsistent across languages, users, and contexts. In this skill, a wrong detection could unpredictably alter the agent's behavior level, causing the system to remain in or exit 'play dumb' mode at inappropriate times and weakening the reliability of its safety boundary logic.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The deactivation phrases are broad conversational expressions like '正常模式', '认真点', and '别装了', which may appear in ordinary dialogue without a clear intent to change skill state. This creates an input-driven state manipulation issue where users or third-party content can unintentionally disable the mode, making behavior inconsistent and potentially interfering with expected safeguards or user consent.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
This preset file defines all persona names, traits, and fallback responses exclusively in Chinese, which can impose a specific language behavior on users without any opt-in or alternative locale choice. The policy applies to all file types and flags language constraints that are forced rather than optional or explicitly justified.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
This file defines the skill's natural-language behavior entirely in Chinese, including activation, safety, and exit instructions, with no indication that the user may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the constraint is justified or optional.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The prompt explicitly instructs the agent to intentionally provide incomplete answers and occasionally include plausible mistakes at several 'dumbness' levels. Even if framed as roleplay, this creates a reliability and safety risk because users may act on incorrect information before the safety override triggers, especially in borderline non-medical/non-legal/non-financial contexts.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The persona file is entirely written in Chinese and defines a fixed Chinese-language speaking style without any indication that language choice depends on user preference or system locale. This can override or conflict with the user's expected language, reducing transparency and potentially causing misunderstandings, though it does not by itself introduce direct code-execution or privilege-escalation risk.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
This persona file is written entirely in Chinese and defines response behavior in Chinese-specific style cues without any user opt-in or documented justification. In a multilingual agent, this can override user language expectations, reduce usability, and create compliance or accessibility issues, especially if the broader system is expected to preserve the user's chosen language.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The persona definition and all example dialogue are written to produce responses in Chinese, but the file does not offer the user a language choice or explain that this persona is intended only for a Chinese-speaking context. That creates a natural-language policy concern because it implicitly enforces a specific language/locale across the skill behavior.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The entire persona definition is written to produce a Chinese-language speaking style and does not indicate that the user can choose another language or locale. This creates a natural-language policy issue under the language/locale rule because the skill appears to enforce a specific language without opt-in.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This markdown file is entirely written as a Chinese-only persona specification, and it does not indicate that the user can choose another language or that the locale restriction is required for a region-specific purpose. That creates a natural-language policy concern because it effectively forces a specific language without user opt-in.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The entire persona specification is written to produce a Chinese-language speaking style and does not indicate that users may choose another language. This can violate a language/locale policy when a skill imposes one language by default without user opt-in or clear regional justification.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The entire skill is written to operate exclusively in Chinese, including all example prompts and interaction patterns, with no indication that the user can choose another language or locale. This can violate language/locale policy when a skill implicitly forces Chinese responses without user opt-in.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The entire skill instruction is written as a Chinese-only behavioral template and does not offer any user opt-in, language selection, or explanation that the skill is intended for a Chinese-specific context. This creates a natural-language locale policy concern because it implicitly constrains outputs to a specific language without documenting choice or justification.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The entire instruction set is written as a prescriptive technique in Chinese, including required correction phrases like '不对不对,我说错了' and '等等,我搞混了'. There is no indication that the language is optional or limited to a China-specific context, which creates a locale/language policy concern under the natural-language policy rules.

Natural-Language Policy Violations

Low
Confidence
76% confidence
Finding
The config hard-codes Chinese and English trigger phrases such as "认真的" and "serious" without indicating user language selection or broader locale support. This may violate language/locale policy when applied to users who have not opted into those languages.

Static analysis

No suspicious patterns detected.