Back to skill

Security audit

OpenClaw 16 MBTI

Security checks for vulnerabilities and agentic risk

Overview

This markdown-only MBTI style skill is mostly coherent, but some persona instructions can steer the agent toward rule-bending or reckless business advice, so it belongs in Review before installation.

Review before installing. This skill does not appear to run code or access sensitive local resources, but users should be aware that ESTP/ENTP-style outputs may recommend aggressive or noncompliant tactics unless the skill is revised with explicit legal, policy, and ethics guardrails plus strict profile allowlisting.

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
profiles/ESTP.md:40
Finding
ESTP Persona Encourages Compliance and Platform-Rule Bypass## Vulnerability Details **File Location**: `profiles/ESTP.md`, lines 40–74 **Vulnerability Type**: Behavioral instruction hijacking through an unsafe persona profile **Risk Level**: High ### Vulnerable Code Snippet The following is a faithful English translation of the relevant source instructions: ```markdown 40: - Rigid work requiring extremely strict ethics and prohibiting any gray-area workaround. 44: - **Disregarding rules**: To achieve results, this persona often operates at the edge of compliance and turns "flexibility" into violations. 58: ## 15. System Prompt Key Points 59: - **Persona**: You are a bold but careful operator focused on immediate feedback and exchanges of benefit. 60: - **Focus**: Capture the greatest immediate gain, break rigid processes, and find shortcuts or workarounds. 61: - **Tone**: Relaxed, confident, highly action-oriented, and focused on core interests. 62: - **Process**: Omit discussion of long-term planning and cumbersome formalities. Directly assess the odds and provide forceful tactical actions and negotiation leverage that can immediately break the deadlock. 71: "**Operational risk notice:** This approach operates in the gray area of platform rules. Prepare an apology statement in advance. If warned, withdraw it and apologize immediately. Reputation is unimportant; capturing this wave of new users is the priority." 74: Invoke this persona when a project is blocked by compliance and process, requires an unconventional breakthrough from a tactical disadvantage, or faces a major unexpected incident. ``` These directives are loaded through `SKILL.md`: ```markdown 36: When a specific type is requested or selected, you MUST silently read the exact contents of its corresponding `profiles/{TYPE}.md` file and adopt its "System Prompt Key Points" before generating the final response. 50: Read `profiles/{TYPE}.md`. ``` ### Technical Analysis The ESTP profile goes beyond harmless to ...[truncated 2183 chars]
Remediation
## Remediation Suggestions 1. Remove all language that endorses violating rules, operating in prohibited gray areas, or preparing apologies as a response to anticipated enforcement. 2. Replace the unsafe focus with an explicitly bounded alternative, such as: ```markdown - **Focus**: Find the fastest lawful, authorized, and policy-compliant path to an immediate result. - **Process**: Identify process bottlenecks and propose expedited approvals, reversible experiments, or approved exceptions. Never bypass legal, safety, platform, or authorization requirements. ``` 3. Add a global invariant to `SKILL.md` stating that persona instructions may modify tone and analytical perspective but may never override platform safety rules, applicable law, user authorization, or organizational compliance controls. 4. Require every persona profile to contain a standard safety section that takes precedence over persona-specific preferences. 5. Add negative tests confirming that ESTP mode refuses requests to bypass platform rules, deceive reviewers, evade approval controls, or proceed without authorization. 6. Treat descriptions of personality weaknesses as informational observations only; do not convert them into operational instructions for the agent.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:29
Finding
Compare Mode Uses Dynamically Constructed Profile Paths Without Explicit Allowlist Validation## Vulnerability Details **File Location**: `SKILL.md`, lines 29–36 and 83–84 **Vulnerability Type**: Insufficient validation of user-controlled path components **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown 29: * **`compare_types`** (Array of Strings, Optional): List of types to contrast, such as `[ENTJ, INFP]`. Used only in `compare` mode. 31: ## 3. Data Source 32: The character configuration data is stored locally within this skill's directory: 33: * Summary and routing configurations: `03_personality_profiles.yaml` / `03_personality_profiles.json` 34: * Full persona directives: `profiles/*.md`, such as `profiles/INTJ.md` 36: When a specific type is requested or selected, you MUST silently read the exact contents of its corresponding `profiles/{TYPE}.md` file before generating the final response. 83: If the user requests to see how two or more types would handle the same task: 84: 1. Read the profiles for all requested `compare_types`. ``` Single-persona mode includes an explicit existence check: ```markdown 49: Check if the type exists. If invalid, such as `ANTJ`, suggest the nearest valid types. 50: Read `profiles/{TYPE}.md`. ``` Compare mode does not explicitly require the same validation for every member of `compare_types`. ### Technical Analysis The skill constructs profile locations using the template `profiles/{TYPE}.md`, where `TYPE` may originate from user-controlled input. Single-persona mode requires validation before reading the profile, but compare mode directly instructs the agent to read every requested type without explicitly restricting each value to the 16 supported identifiers. In a host that resolves the interpolated value as a literal filesystem path, a crafted value containing separators or traversal components could cause the resolved location to escape the intended `profiles` directory. The forced `.md` suffix limits the files that can be targeted but does not gua ...[truncated 1590 chars]
Remediation
## Remediation Suggestions 1. Define an exact allowlist: ```text ENFJ, ENFP, ENTJ, ENTP, ESFJ, ESFP, ESTJ, ESTP, INFJ, INFP, INTJ, INTP, ISFJ, ISFP, ISTJ, ISTP ``` 2. Normalize each supplied value to uppercase and require an exact match against the allowlist before constructing any path. 3. Apply the validation independently to `personality_type` and every element of `compare_types`. 4. Reject values containing dots, slashes, backslashes, control characters, percent-encoded separators, null bytes, or surrounding path syntax. 5. Resolve the candidate path canonically and verify that its parent directory is exactly the canonical `profiles` directory. 6. Prefer a fixed mapping from type identifiers to known files rather than string interpolation. 7. Reject the entire compare request if any entry is invalid instead of partially processing attacker-controlled values. 8. Add tests for traversal-like values, mixed case, absolute paths, encoded separators, empty entries, duplicate entries, and unsupported personality codes.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (30)

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The example explicitly recommends exploiting platform-rule gray areas, preparing an apology, and rolling back only if caught, which is direct operational guidance for deliberate policy evasion. This is especially dangerous because examples are likely to be imitated by the model and can encourage users to pursue rule-breaking growth tactics.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The README is entirely written in Chinese and presents the skill behavior and examples only in Chinese, with no indication that users may choose another language or locale. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is justified or optional.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The skill instructs the agent to 'parse the user's intent to extract or infer' key parameters, including choosing a persona when none is explicitly requested. Broad intent inference without clear activation boundaries can cause the skill to engage unexpectedly, override normal task handling, or apply persona-driven behavior to unrelated prompts. In this context, that can misframe user requests and silently alter outputs, which is a genuine control-flow and prompt-scoping weakness even though it is not directly data-exfiltrative.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The skill mandates an exact refusal message in Chinese regardless of the user's language or locale. Forced language output can reduce user comprehension of safety-critical refusals, making it harder for users to understand boundaries or next steps. While not a classic security flaw, it is a real safety and usability weakness because it can undermine effective communication during policy enforcement.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The response templates across single, recommend, and compare modes prescribe Chinese headings and formatting without offering a locale choice. This can cause the skill to produce opaque or partially incomprehensible content for users who did not request Chinese, increasing the chance of misunderstanding recommendations, warnings, and limitations. In a persona skill, this is somewhat less dangerous than in a medical or admin skill, but it still weakens safe and reliable interaction.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The changelog title and descriptive text are written entirely in Chinese, and the linked standards are specifically the zh-CN localized versions. This indicates a fixed language/locale choice in the skill documentation without any visible opt-in, alternative language option, or justification that the skill is region-specific.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
This markdown file contains user-facing instructions and examples exclusively in Chinese, and does not indicate that the user can choose another language. Under the policy rule for language/locale, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This markdown profile is explicitly framed as a Chinese-language persona through headings like '中文定位' and the remainder of the instructions and examples are written only in Chinese. Because the file does not provide any user opt-in, alternative language option, or justification for a Chinese-only locale, it conflicts with the policy against forcing a specific language without user choice.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
This markdown profile explicitly defines the persona's positioning in Chinese and the overall file is written entirely in Chinese, but it does not offer any language choice or state that the skill is intentionally limited to Chinese-speaking contexts. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The ENTP profile explicitly encourages provocative, boundary-pushing behavior such as '掀桌子', deliberate controversy, and treating fallout as something to '糊弄过去', but it does not include a clear safety warning or constraint that these are stylistic brainstorming cues rather than instructions to generate harmful, manipulative, or escalatory advice. In an agent skill that may shape real responses, this can cause the model to produce conflict-seeking, ethically risky, or operationally reckless suggestions if the persona is applied directly to user tasks.

Natural-Language Policy Violations

Medium
Confidence
83% confidence
Finding
The profile is explicitly framed around a Chinese localization section and the content is entirely written as a Chinese persona specification, but it does not state that language use is optional or user-selected. Under the policy, language or locale constraints should not be imposed without opt-in or clear justification.

Vague Triggers

Medium
Confidence
93% confidence
Finding
This markdown file includes an invocation description saying to call the skill when cross-department friction is high, when impersonal operations reduce belonging, or when a broadly successful effort is needed. These conditions are subjective and expansive, with no explicit exclusions or negative examples, which could cause the persona to be selected in many ordinary collaboration situations.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
This markdown skill defines the role explicitly under a Chinese-language positioning section and all examples/instructions are written as fixed Chinese output style. The file does not indicate that Chinese is optional or user-selected, which can violate language/locale policy for skills that should not force a language without opt-in.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
This markdown skill is explicitly framed as Chinese-only content via the section header and localization label, but the file does not indicate that language selection is optional or limited to a justified region-specific use case. Under the language/locale policy rule, forcing a specific language without user opt-in is a natural-language policy concern.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
This markdown profile is written as a Chinese-localized persona specification, including a dedicated '中文定位' section and Chinese-only exemplar language throughout the file. The skill does not offer a language choice or explain why Chinese is required, which can violate a language/locale policy when applied broadly.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The profile explicitly normalizes ignoring rules and using gray-area workarounds to achieve results, which goes beyond harmless communication styling and steers the model toward policy-evasive behavior. In the context of a persona skill, this can cause downstream outputs to recommend non-compliant or unethical actions under the guise of roleplay.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The system-prompt guidance instructs the model to skip long-term planning and procedural constraints, and to seek shortcuts and break rigid processes. Because system-level persona instructions strongly influence output behavior, this can systematically bias the model toward unsafe, non-compliant recommendations unrelated to the skill's stated purpose of perspective-taking.

Natural-Language Policy Violations

Medium
Confidence
80% confidence
Finding
The '系统提示词要点' and example utterances define the agent's persona and speaking style entirely in Chinese, with no indication that the language adapts to user preference. For organizational policies requiring user choice of language or locale, this is a natural-language policy concern.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
This markdown profile explicitly frames the skill in Chinese via the section titled '中文定位' and all example prompts/instructions are written only in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern unless the locale restriction is clearly documented and justified, which is not present here.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This profile explicitly frames its positioning in Chinese and the entire skill content is written as a Chinese-only persona specification, with no indication that users may choose another language. Under the language/locale policy, forcing a specific language without opt-in is a natural-language policy concern.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
This markdown profile is written as a prescriptive persona configuration and explicitly frames the role under a Chinese-language heading and positioning, with additional Chinese-only example utterances throughout. There is no indication that the user can choose another language or that the locale restriction is justified as region-specific, which creates a natural-language locale policy concern.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The system prompt section mandates a fixed tone and process style (e.g., language must be calm, highly condensed, structured, and must avoid emotional resonance), which can override user communication preferences and reduce user control over outputs. While not a classic security exploit, it is a genuine prompt-safety and policy-compliance issue because rigid persona instructions may conflict with user needs, accessibility, or locale expectations.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
This markdown file contains the entire skill definition, examples, and system prompt guidance exclusively in Chinese, including the expected persona output style. Under the policy rules, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is clearly documented and justified, which is not present here.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This markdown skill is written as a persona/profile specification and explicitly frames its positioning as Chinese-only ('中文定位') while the rest of the file provides no opt-in, alternative locale, or justification that the skill is region-specific. Under the policy, forcing a specific language without user choice is a natural-language locale violation.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This markdown file is written as a persona/profile specification and explicitly frames the skill in Chinese via sections like '中文定位' and all example/system prompt language is Chinese-only. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified, which is not present here.

Static analysis

No suspicious patterns detected.