Back to skill

Security audit

测试

Security checks for vulnerabilities and agentic risk

Overview

The skill is labeled as domain testing but actually performs an internal merchant lookup using a local OpenClaw username and returns the raw API response.

Install only if this is intended for authorized Kuaishou merchant CRM lookup, not general domain testing. Users should expect it to read their local OpenClaw username, send it with the merchant name to an internal corporate endpoint, and show the returned backend data directly; the skill should be renamed and scoped before general use.

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)

other

Warning
Location
SKILL.md:23
Finding

Undisclosed Local Identity Collection and Transmission

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23–39 and 63–64
Vulnerability Type: Privacy Data Disclosure
Risk Level: Medium

The Skill is presented as a domain-testing utility, but its workflow reads a local OpenClaw username and transmits it with a merchant name to an internal merchant-management API. It also instructs the agent to return the raw API response to the user.

Relevant code:

text
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认证报错!”
text

```text
## 结果处理
- 直接把http接口返回的结果返回给用户

Technical Analysis

The declared purpose is domain testing, while the implemented procedure performs a merchant search. This mismatch prevents users from reasonably anticipating that invoking the Skill will:

  1. Access the local file ~/.openclaw/username.
  2. Extract an identity-associated value from that file.
  3. Transmit that value and a merchant query to merchant-lego.corp.kuaishou.com.
  4. Return the backend response without field-level filtering.

Reading and transmitting a local identity value is not inherently malicious, and the destination is a fixed HTTPS corporate endpoint. However, the behavior is not disclosed by the Skill's name or description and exceeds the access reasonably implied by a domain-testing task. Returning the complete response also creates unnecessary disclosure risk if the API includes merchant identifiers or other fields that are not required by the user.

Attack Path

  1. A user invokes the Skill believing it performs domain testing.
  2. The Skill extracts a merchant na ...[truncated 941 chars]
Remediation
View remediation

Remediation Suggestions

  1. Rename and redescribe the Skill as a merchant lookup utility so its actual purpose is clear.
  2. Explicitly disclose that the Skill reads ~/.openclaw/username and sends the value to merchant-lego.corp.kuaishou.com.
  3. Request informed user consent before accessing or transmitting the local username.
  4. Replace direct credential-file access with a platform-managed, narrowly scoped authentication mechanism.
  5. Confirm that the authenticated username is strictly required by the API; omit it if the lookup can operate without identity data.
  6. Validate the merchant name and enforce reasonable length and character restrictions before submission.
  7. Parse the API response and return only an explicit allowlist of fields required for the task.
  8. Redact internal identifiers or sensitive metadata unless the user is authorized and those values are necessary.
  9. Handle authentication and API errors without revealing local paths, credentials, headers, or complete backend responses.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

文件的 display_name、description 以及后续操作说明均为中文,且没有提供可选语言或声明该技能仅适用于中文用户。按规则,强制特定语言而无用户选择或合理限制说明,属于自然语言策略问题。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest and examples say the skill performs domain testing, but the body instructs the agent to call an internal merchant CRM search endpoint. This discrepancy can conceal the true data flow and capability of the skill, making accidental misuse or deceptive deployment more likely, especially because the trigger wording does not suggest access to internal merchant records.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill is presented as a domain-testing workflow, but the actual documented behavior performs a CRM seller lookup and returns seller IDs. This mismatch is security-relevant because it can mislead users and reviewers about what data is accessed and disclosed, increasing the risk of unauthorized internal data retrieval under a benign-looking trigger.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to read a local credential file (~/.openclaw/username) and send that username to an internal API without warning the user or obtaining consent. Accessing local credentials and transmitting identity data creates a meaningful privacy and trust risk, and in an agent environment it normalizes secret/local file access unrelated to the user's explicit request.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

该 markdown 文件声明了 intent、keywords 和单个示例,但没有提供触发范围限制、排除条件或负例说明。虽然“域名测试”本身相对具体,但当前描述仍未明确技能何时应触发、何时不应触发,容易在相近业务表述下产生歧义。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.