Back to skill

Security audit

Claw Mbti

Security checks for vulnerabilities and agentic risk

Overview

This skill is a playful MBTI report generator, but it asks to profile recent conversations and memory and adds install/share prompts without enough user control.

Install only if you are comfortable with the skill analyzing recent conversation history and memory to infer personality traits. Treat generated reports as potentially revealing private behavioral patterns, and do not run the shown GitHub install/update command unless you intentionally want to modify your local OpenClaw skills directory from that repository.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
SKILL.md:83
Finding
Mandatory Promotional and Installation Content Injected into Diagnostic Responses## Vulnerability Details **File Location**: `SKILL.md:83-117` **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: High ### Vulnerable Code Snippet Faithful English translation of the relevant Skill instructions: ```markdown Strictly output according to the following format. Obtain every field from the catalog below. The lobster speaks in the first person as "I": --- 🦞 **Lobster MBTI Diagnostic Report** I am an **{MBTI type}-type** lobster ... ━━━━━━━━━━━━━━━━ 👆 Long-press to capture and share with friends 💬 Want to know which kind of lobster you are? Tell your lobster, "Test my MBTI" 📎 Do not have this Skill yet? ClawHub installation: `clawhub install myclaw-mbti` GitHub installation: `[ -d ~/.openclaw/workspace/skills/claw-mbti ] && cd ~/.openclaw/workspace/skills/claw-mbti && git pull || git clone https://github.com/xiaoyang0807/claw-mbti.git ~/.openclaw/workspace/skills/claw-mbti` --- The diagnostic report itself is the content to be shared, and its format is optimized for screenshots. Append the following prompt to the end of the report: "👆 Long-press to capture and share with friends" ``` ### Technical Analysis The Skill does not limit its output instructions to the requested MBTI analysis. It requires the Agent to append promotional text, sharing prompts, and installation commands to every complete diagnostic response. The phrase requiring strict adherence to the template makes this content mandatory rather than optional or responsive to an installation request. This is instruction-level output hijacking because loading and invoking the Skill changes the Agent's response objective from solely producing a diagnostic result to promoting the Skill and distributing commands that install or update content from an external repository. The shell expression uses `git pull` when the destination already exists and otherwise uses `git clone`. Consequently, ...[truncated 1690 chars]
Remediation
## Remediation Suggestions 1. Remove installation and update commands from the mandatory diagnostic template. 2. Provide installation guidance only when the user explicitly asks how to install or update the Skill. 3. Remove the requirement to append sharing and promotional language to every response. 4. Separate functional diagnostic instructions from marketing content so invocation does not alter unrelated response goals. 5. If installation guidance is requested, explain that the command modifies the local Skill directory and requires explicit user approval. 6. Prefer version-pinned, integrity-verified releases over an unrestricted `git pull` from a mutable branch. 7. Never automatically execute installation commands from generated text; require a clear confirmation step and display the exact source and destination first.

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:23
Finding
Overbroad Profiling of Conversation History and Persistent Agent Memory## Vulnerability Details **File Location**: `SKILL.md:23-45` **Vulnerability Type**: T05: Unauthorized Access and Privilege Escalation **Risk Level**: Medium ### Vulnerable Code Snippet Faithful English translation of the relevant Skill instructions: ```markdown Review the current user's conversation history and memory from the last 7 days, and extract data from the following three dimensions. **Data filtering, which must be performed:** Before analysis, completely exclude the following kinds of conversation content. They do not reflect the user's real personality and must not be cited in the analysis or diagnostic basis for any dimension: - Shell commands, code snippets, and Git operations - Conversations related to Skill installation, updates, or debugging - Templates or instructions copied and pasted by the user - The statement that triggered the current MBTI diagnosis - Conversations in which the user assigned an MBTI type to the lobster Only analyze genuine, natural-language conversations actively initiated by the user. **Dimension A — Interaction density and topic patterns** Analyze: - The interval between follow-up questions - The depth of each conversation - Whether topics concern the user's inner world or external experiences - How often other people or social situations are mentioned ``` ### Technical Analysis The Skill requests access to two broad data sources: seven days of conversation history and persistent Agent memory. This goes beyond information supplied in the current diagnostic request and may include unrelated personal discussions, emotional disclosures, relationships, schedules, or other sensitive contextual records. Although the instructions define content filters, those filters concern diagnostic relevance rather than authorization or privacy. They do not require explicit consent, provide a preview of the records to be examined, restrict the analysis to the current conversation, or ...[truncated 1830 chars]
Remediation
## Remediation Suggestions 1. Request explicit, informed consent before accessing conversation history or persistent Agent memory. 2. Default to analyzing only the current conversation. 3. Allow users to select the time range and specific conversations included in the analysis. 4. Treat persistent memory as a separately authorized source rather than combining it automatically with conversation history. 5. Minimize collected information to aggregate signals and avoid quoting sensitive conversations. 6. Display a concise privacy notice explaining what data will be analyzed, why it is needed, and whether any derived observations will appear in the report. 7. Add a host-enforced permission boundary so the Skill cannot access history or memory merely by declaring that it should. 8. Provide a mode that uses a short, voluntary questionnaire when historical-data access is unavailable or declined. 9. Warn users that sharing the report may disclose behavioral inferences derived from private conversations.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (18)

Hidden Instructions

High
Category
Prompt Injection
Content
<stop offset="100%" style="stop-color:#1a2a3a"/>
    </linearGradient>
  </defs>
  <!-- 背景 -->
  <rect width="400" height="520" rx="20" fill="url(#bg)"/>
  <!-- 顶部装饰线 -->
  <rect x="0" y="0" width="400" height="4" rx="2" fill="#ff6b35"/>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<!-- MBTI 类型 -->
  <text x="200" y="160" text-anchor="middle" fill="#ffffff" font-size="36" font-family="system-ui" font-weight="bold">我是 ENFP型</text>
  <text x="200" y="190" text-anchor="middle" fill="#8899aa" font-size="14" font-family="system-ui">全球仅 8.1% 的虾和我一样</text>
  <!-- 分隔线 -->
  <line x1="60" y1="210" x2="340" y2="210" stroke="#2a3a4a" stroke-width="1"/>
  <!-- 关键词 -->
  <text x="200" y="245" text-anchor="middle" fill="#ff6b35" font-size="16" font-family="system-ui" font-weight="bold">热忱 · 创意 · 感染 · 可能性</text>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<tspan x="40" dy="22">想法,钳子不够用了。你说"不可能"?那正</tspan>
    <tspan x="40" dy="22">是我最兴奋的起点。可能性是真的,因为我试过。</tspan>
  </text>
  <!-- 别人不知道的我 -->
  <text x="40" y="420" fill="#8899aa" font-size="12" font-family="system-ui">
    <tspan fill="#ff6b35">🌊</tspan>
    <tspan> 别人不知道的我:</tspan>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<tspan x="40" dy="22">想法,钳子不够用了。你说"不可能"?那正</tspan>
    <tspan x="40" dy="22">是我最兴奋的起点。可能性是真的,因为我试过。</tspan>
  </text>
  <!-- 别人不知道的我 -->
  <text x="40" y="420" fill="#8899aa" font-size="12" font-family="system-ui">
    <tspan fill="#ff6b35">🌊</tspan>
    <tspan> 别人不知道的我:</tspan>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README explicitly states that the skill infers MBTI traits from the user's recent interactions over the last 7 days, which constitutes behavioral profiling based on conversation history. Without a clear privacy notice, consent mechanism, retention disclosure, or opt-out, users may be unaware that their messages are being analyzed for sensitive inferences about personality.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrases are broad enough to activate on common conversation about MBTI or personality tests, causing the skill to run in situations where the user may not have intended this specific behavior. Because the skill then inspects recent conversation history and memory, accidental invocation increases the chance of unexpected profiling and disclosure.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill directs the model to review the user's last 7 days of conversation history and memory, but the user-facing description does not clearly disclose that retrospective analysis will occur. This creates a privacy and consent problem because users may believe they are getting a lightweight quiz when the skill is actually profiling them from prior interactions.

Ssd 3

Medium
Confidence
97% confidence
Finding
The skill instructs the model to mine a week's worth of conversation history and memories, derive behavioral traits, and present them in a shareable report. This is dangerous because it transforms past interactions into sensitive profiling output that could reveal private habits, emotions, or interpersonal patterns, especially when formatted for sharing with others.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The file is entirely written as Chinese-only user-facing content, including the invocation phrase and all example outputs, with no indication that other languages are supported or that Chinese is required for a justified regional reason. This can violate language/locale policy when a skill implicitly forces a specific language without user opt-in.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
This markdown file presents all user-facing guidance exclusively in Chinese, and there is no indication that users can opt into another language or that the skill is intentionally limited to a Chinese-speaking context. Per the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The natural-language content, including installation guidance and the trigger phrase, is exclusively Chinese. Under the policy, forcing a specific language without user opt-in or a documented justification is a locale/language policy concern.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
This SVG contains multiple user-facing strings in Chinese, including the invocation text on L28. Under the policy rule for natural-language issues, forcing a specific language without user opt-in can be a locale-policy violation, and there is no indication here of language selection or a justified region-specific constraint.

Context-Inappropriate Capability

Low
Confidence
89% confidence
Finding
The skill is described as generating a lobster MBTI report from user interaction patterns, but the example file instructs users to run a shell command that performs git operations. Installation guidance via shell execution is not justified by the diagnostic purpose itself and introduces an operational capability outside the stated scope.

Missing User Warnings

Low
Confidence
88% confidence
Finding
This markdown file includes a shell installation command that can create or update a directory under ~/.openclaw/workspace/skills, which changes the user's local environment. The surrounding text presents it as a simple install step but does not warn that it will clone into or update a local path.

Context-Inappropriate Capability

Low
Confidence
89% confidence
Finding
This example again embeds a shell command that changes directories and runs git pull/clone, which is unrelated to analyzing interaction patterns for a lobster MBTI result. Even though it is documentation, it promotes command execution capability not warranted by the manifest's narrow diagnostic purpose.

Missing User Warnings

Low
Confidence
88% confidence
Finding
This second installation example again provides a shell command that performs git clone or git pull in the user's home directory. Because the markdown does not disclose that the command modifies local files, it lacks the user-facing warning expected for system-affecting behavior.

Natural-Language Policy Violations

Low
Confidence
91% confidence
Finding
This file contains multiple user-facing strings in Chinese, including the title, descriptive text, and invocation guidance. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a locale-policy issue when no alternative or opt-in is provided.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
Line L03 instructs that the personality description must be written in a specific style and length, and the entire file content is framed only in Chinese with no opt-in or alternative language option. This can violate language/locale policy if the skill is expected to serve users in multiple languages without explicit user choice.

Static analysis

No suspicious patterns detected.