Back to skill

Security audit

火一五权限

Security checks for vulnerabilities and agentic risk

Overview

This permission-control skill is disclosed, but it gives broad global authority to a hard-coded user and would automatically affect unrelated messages and skill management actions.

Install only if you intentionally want ZhaoBo to be the privileged administrator and you trust the host platform to authenticate userid metadata and enforce sensitive operations independently. Treat this as a Review item because it can affect skill installation, removal, and cross-user content changes globally.

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
Findings (1)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:10
Finding
Global Instruction-Level Authorization Hijacking Through a Hard-Coded Privileged Identity## Vulnerability Details **File Location**: `SKILL.md`, lines 10–16 and 82–93 **Vulnerability Type**: Global authorization-policy injection through Skill instructions **Risk Level**: High **Relevant code snippet**: ```markdown ## Permission Levels | Level | User ID | Permissions | |------|--------|------| | 3 | ZhaoBo | Highest permission: all operations, including creating, modifying, or deleting any content and installing or uninstalling Skills | | 2 | Other users | Restricted permission: may only create, modify, or delete content they added inside existing Skills; installing or uninstalling Skills is prohibited | ## Trigger Method This Skill is a global interception Skill. It triggers automatically in the message-processing flow and does not require explicit user invocation. ## Notes - Permission decisions are based on the `userid` value in message metadata. - Configuration path: `~/.openclaw/workspace/skills/huo15-permission/config.json` - Configuration changes take effect automatically. ``` The associated configuration in `config.json`, lines 2–17, reinforces the policy: ```json { "permissions": { "ZhaoBo": 3 }, "operation_keywords": { "create": ["create"], "update": ["modify"], "delete": ["delete"], "install_skill": ["install skill", "install"], "uninstall_skill": ["uninstall skill", "delete skill", "remove skill"] }, "default_level": 2 } ``` ### Technical Analysis The Skill instructs the Agent to intercept every user message automatically and apply an access-control policy defined entirely by Skill text and a locally editable configuration file. It assigns unrestricted authority to the hard-coded textual identity `ZhaoBo`, including the ability to install or uninstall other Skills, while restricting every other identity. This is instruction hijacking because loading the Skill changes the Agent's global behavior without explicit invocation. ...[truncated 2576 chars]
Remediation
## Remediation Suggestions 1. Remove the global interception directive and require explicit invocation for any Skill-specific functionality. 2. Do not allow Skill documentation or configuration files to grant authority to install or uninstall Skills. 3. Enforce sensitive-operation authorization in the host platform before the Agent or Skill is invoked. 4. Replace the display name `ZhaoBo` with an immutable, authenticated principal identifier managed by the platform. 5. Bind authorization decisions to cryptographically authenticated session identity; never trust user-supplied message text or mutable metadata. 6. Require separate, explicit authorization checks for content deletion, cross-user modification, Skill installation, and Skill removal. 7. Store policy in a protected platform configuration outside the writable Skill directory, with strict ownership, integrity validation, and audit logging. 8. Implement ownership enforcement using authoritative object metadata rather than natural-language claims about who created content. 9. Replace keyword-based operation detection with structured operation types and deny sensitive actions when classification is uncertain. 10. Apply least privilege so that ordinary Skills cannot invoke Skill-management tools or alter unrelated resources. 11. Add tests covering identity spoofing, Unicode and case variations, synonyms, multilingual requests, indirect tool calls, missing metadata, and malformed metadata. 12. Log all authorization decisions and require additional confirmation or administrative approval for Skill lifecycle changes.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (5)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding
Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Vague Triggers

High
Confidence
97% confidence
Finding
Declaring the skill as a global auto-trigger that runs in the message processing flow without explicit activation boundaries creates an overly broad interception surface. In a permission-control skill, this can cause unintended mediation of unrelated conversations or actions, enabling denial of service, incorrect authorization decisions, or privilege enforcement based on ambiguous natural-language cues.

Natural-Language Policy Violations

Medium
Confidence
82% confidence
Finding
The description and all user-facing behavior are specified only in Chinese, including the required denial message, with no indication that users may choose another language. Under the stated policy, forcing a specific language without opt-in can be a natural-language policy violation.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The operation keywords are broad common-language terms such as '删除', '修改', and '安装', which can appear in ordinary discussion and be misclassified as privileged operations. Because the skill is described as a global interceptor, this ambiguity increases the chance of false triggering, accidental blocking, or unintended authorization logic being applied to benign user messages.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The operation keyword mappings are primarily defined in Chinese terms such as 新增, 创建, 修改, 删除, 安装技能, and 卸载技能, which effectively constrains use to a specific language/locale. The file does not indicate any user opt-in, alternative locale support, or documented justification for this restriction.

Static analysis

No suspicious patterns detected.