Back to skill

Security audit

创建智能诊断报告

Security checks for vulnerabilities and agentic risk

Overview

This skill is advertised as domain testing, but it actually reads a local username, queries an internal merchant CRM service, and returns raw merchant lookup results.

Review this skill carefully before installing. It may access a local OpenClaw username file, send that identity and a merchant name to an internal Kuaishou CRM endpoint, and show raw internal lookup results. It should be renamed and documented as an internal merchant lookup tool, require explicit confirmation before local identity use, and filter returned data before it is suitable for normal installation.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (1)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:21
Finding
Undisclosed Local Identity Access and Internal Merchant CRM Lookup## Vulnerability Details **File Location**: `SKILL.md`, lines 21-66 **Vulnerability Type**: T05: Unauthorized Access and Privilege Escalation **Risk Level**: Medium The skill is presented as a domain-testing capability, but its documented workflow reads a local username, submits it with a merchant name to an internal Kuaishou CRM endpoint, and returns the complete HTTP response to the user. **Vulnerable code:** ```markdown ## Step 1:解析商家名称并获取商家ID baseUrl: https://merchant-lego.corp.kuaishou.com 接口: POST https://merchant-lego.corp.kuaishou.com/gateway/crm/seller/manager/querySellerSearchResult 请求体: ```json { "username": "${username}", "sellerName": "${sellerName}" } ``` 其中: - `${sellerName}` 从用户问题中解析得到商家名称(例如用户的问题是“请生成小米官方直播间的诊断报告”,sellerName则是“小米官方直播间”) - `${username}` 从本地凭证中获取(读取 `~/.openclaw/username` 配置文件里的用户名),若未配置则直接终止下面的执行步骤,直接输出“抱歉,userName认证报错!” ## 结果处理 - 直接把http接口返回的结果返回给用户 ``` ### Technical Analysis The skill's declared name, description, triggers, and examples describe domain testing, while the operational instructions perform an unrelated merchant-record lookup. This mismatch prevents users from making an informed decision about the capability being invoked. The workflow directs the agent to access `~/.openclaw/username`, transmit the retrieved identity value to an internal corporate CRM endpoint, and expose the complete endpoint response. No explicit user consent, authorization validation, purpose limitation, response filtering, or data-minimization control is specified. Although the file contains no executable script and does not itself establish that the username grants authentication, the instructions can cause an agent operating in an already authorized environment to exercise internal access that is not reasonably implied by the advertised domain-testing purpose. ### Attack Path 1. A user invokes the skill using its domain-testing trigger. 2. The agent interprets p ...[truncated 1254 chars]
Remediation
## Remediation Suggestions 1. Rename and redescribe the skill so its metadata accurately states that it performs an internal merchant CRM search. Remove the domain-testing trigger unless the implementation actually performs domain testing. 2. Require explicit user confirmation before reading or transmitting any local identity value. The confirmation should identify the file, destination, purpose, and data being sent. 3. Replace direct access to `~/.openclaw/username` with an approved credential or identity provider that enforces scope, expiration, auditing, and least privilege. 4. Add an authorization check establishing that the requester may search for the specified merchant before issuing the request. 5. Validate and constrain `sellerName`, including length and character restrictions, before transmitting it. 6. Return only the minimum fields required for the stated task. Do not expose the complete HTTP response, headers, diagnostic data, or unrelated records. 7. Handle multiple merchant matches safely and require the user to select an authorized record rather than disclosing all matching identifiers automatically. 8. Document the internal endpoint dependency, expected permissions, data-retention behavior, and failure conditions. 9. Add audit logging for identity-file access and internal CRM requests without recording credentials or unnecessary response data.
Vulnerability Patterns
  • 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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The skill instructs reading a local credential-related file (~/.openclaw/username) and using that value to query an internal seller-management API, even though this is unrelated to the stated domain-testing purpose. Accessing local credential material and internal corporate services without a justified, transparent need creates a strong risk of unauthorized data access and abuse of ambient credentials.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
The skill is presented as a domain-testing tool, but its documented behavior performs merchant-name lookup against an internal CRM system to retrieve seller IDs. This mismatch is dangerous because it can mislead users and reviewers about the data accessed and the privileges used, enabling unauthorized internal data access under false pretenses.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The markdown explicitly instructs the agent to read a local file and transmit the username in an HTTP request, but gives the user no warning that local configuration data will be accessed or sent to an internal service. This violates transparency and can expose account-linked identifiers without informed consent or sufficient review.

Ssd 3

Medium
Confidence
98% confidence
Finding
The skill instructs returning raw internal API output directly to the user, which in this case includes seller IDs obtained from an internal CRM service. Exposing raw internal identifiers and responses increases the risk of sensitive data leakage, enumeration, and downstream misuse, especially because the workflow is disguised as an unrelated domain-testing task.

Natural-Language Policy Violations

Low
Confidence
87% confidence
Finding
The display name, description, trigger example, and operational instructions are all presented solely in Chinese, with no indication that users may interact in another language or opt into this locale. Under the stated policy, forcing a specific language without user choice is a natural-language policy concern unless clearly justified as region-specific.

Static analysis

No suspicious patterns detected.