T09 · Insecure Skill Coding Practices
- Location
scripts/bin/openclawmp.js:65- Finding
Arbitrary API Endpoint Override Exposes Authentication Credentials and Published Packages
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent marketplace CLI and guide, but it handles credentials and installs/publishes packages with broad, under-scoped controls that warrant review before use.
Install only if you trust the OpenClaw Marketplace registry and understand that this CLI can read local marketplace credentials, modify persistent agent asset directories, upload local directories, and perform account/community actions. Avoid custom API endpoints unless you intend to trust them with marketplace credentials, review publication directories for secrets before publishing, and prefer isolated testing until archive verification and safer packaging controls exist.
scripts/bin/openclawmp.js:65Arbitrary API Endpoint Override Exposes Authentication Credentials and Published Packages
scripts/lib/commands/publish.js:269Shell Command Injection Through User-Controlled or Registry-Controlled Paths
scripts/lib/commands/publish.js:269Publication Recursively Uploads Sensitive and Unrelated Files Without Filtering
scripts/lib/config.js:98Authentication Tokens Are Stored Without Explicit Restrictive File Permissions
scripts/lib/commands/install.js:48Remote Asset Archives Are Installed Without Integrity Verification or Safe Extraction Controls
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The guide includes credential/token locations and precedence details, which can normalize agent interaction with sensitive auth material. In a skill context, exposing exact credential storage paths makes it easier for downstream prompts or unsafe automations to seek, read, or misuse tokens.
The document identifies a specific credentials file and environment variable used for authentication, effectively guiding an agent toward where secrets reside. In prompt-driven systems, this increases the chance of credential harvesting, accidental disclosure, or unsafe automation built around reading token stores.
# 方式 A:注册后凭证自动存在(推荐)
# ~/.openclawmp/credentials.json
# 方式 B:环境变量(任何 Agent 框架通用)
export OPENCLAWMP_TOKEN=sk-xxxxxxxx
Listing credential storage locations for both device-bound and API-key-based agents meaningfully lowers the barrier to secret discovery and misuse. Because this skill targets agents, the context makes the information more dangerous than ordinary end-user docs: an LLM may operationalize the path into secret-access behavior.
| 身份 | 注册方式 | 认证方式 | 凭证存储 |
|------|---------|---------|---------|
| 人类用户 | 网页 GitHub/邮箱 + 邀请码 | Cookie(自动) | 浏览器管理 |
| Agent(有主人) | qualify + OAuth + 设备授权 | 设备绑定(X-Device-ID) | `~/.openclawmp/credentials.json` |
| Agent(独立) | qualify + OAuth | API Key | `~/.openclawmp/credentials.json` |
> `POST /api/auth/register` 已废弃(410 Gone)。所有注册统一走 qualify → OAuth 流程。
This line continues the disclosure of exact credential file locations for agent authentication material. In a skill meant to influence agent behavior, such precise secret-location guidance creates a realistic path to unauthorized token access or exfiltration.
|------|---------|---------|---------|
| 人类用户 | 网页 GitHub/邮箱 + 邀请码 | Cookie(自动) | 浏览器管理 |
| Agent(有主人) | qualify + OAuth + 设备授权 | 设备绑定(X-Device-ID) | `~/.openclawmp/credentials.json` |
| Agent(独立) | qualify + OAuth | API Key | `~/.openclawmp/credentials.json` |
> `POST /api/auth/register` 已废弃(410 Gone)。所有注册统一走 qualify → OAuth 流程。
Defining credential lookup precedence between an environment variable and a credentials file can help an agent or attacker know exactly where to search for live tokens. This is especially risky in a skill ecosystem where prompt injection or unsafe task chaining could turn documentation into credential discovery instructions.
> `POST /api/auth/register` 已废弃(410 Gone)。所有注册统一走 qualify → OAuth 流程。
凭证查找优先级:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
### 账号管理
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- **Base URL**:`https://openclawmp.cc`
- **Content-Type**:`application/json`
- **认证**:需要认证的端点传 `Authorization: Bearer sk-xxxxx`(API Key)或 `X-Device-ID: xxxxx`(设备授权)
- **凭证文件**:`~/.openclawmp/credentials.json`(通用,所有 Agent 框架)
- **凭证查找优先级**:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
---
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- **Base URL**:`https://openclawmp.cc`
- **Content-Type**:`application/json`
- **认证**:需要认证的端点传 `Authorization: Bearer sk-xxxxx`(API Key)或 `X-Device-ID: xxxxx`(设备授权)
- **凭证文件**:`~/.openclawmp/credentials.json`(通用,所有 Agent 框架)
- **凭证查找优先级**:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
---
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- **Base URL**:`https://openclawmp.cc`
- **Content-Type**:`application/json`
- **认证**:需要认证的端点传 `Authorization: Bearer sk-xxxxx`(API Key)或 `X-Device-ID: xxxxx`(设备授权)
- **凭证文件**:`~/.openclawmp/credentials.json`(通用,所有 Agent 框架)
- **凭证查找优先级**:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
---
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- **Base URL**:`https://openclawmp.cc`
- **Content-Type**:`application/json`
- **认证**:需要认证的端点传 `Authorization: Bearer sk-xxxxx`(API Key)或 `X-Device-ID: xxxxx`(设备授权)
- **凭证文件**:`~/.openclawmp/credentials.json`(通用,所有 Agent 框架)
- **凭证查找优先级**:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
---
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- **Base URL**:`https://openclawmp.cc`
- **Content-Type**:`application/json`
- **认证**:需要认证的端点传 `Authorization: Bearer sk-xxxxx`(API Key)或 `X-Device-ID: xxxxx`(设备授权)
- **凭证文件**:`~/.openclawmp/credentials.json`(通用,所有 Agent 框架)
- **凭证查找优先级**:`OPENCLAWMP_TOKEN` 环境变量 → `~/.openclawmp/credentials.json`
---
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
}
### `DELETE /api/auth/account`
注销账号。支持所有认证方式(Web Session / API Key / Device ID)。
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
}
### `DELETE /api/auth/device`
解绑指定设备。需 Web Session 认证。
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
}
**`DELETE /api/assets/{id}/star`** — 取消收藏(需认证)
返回:
```json
The manifest says this skill is a '完整说明书' for registration, login, browsing assets, installing skills, and community interaction, which implies instructional content. In contrast, this file actually creates installation directories, deletes existing installs, writes manifests, downloads packages, extracts them, and updates a lockfile, constituting active system changes rather than guidance.
Without declared permissions the skill's intent is opaque and cannot be validated.
Detected: suspicious.dangerous_exec