Back to skill

Security audit

Bot Customizer

Security checks for vulnerabilities and agentic risk

Overview

This skill performs the advertised bot customization, but it also tells agents to save user credentials in plaintext and mutate agent workspace/configuration state without clear safeguards.

Install only if you are comfortable with a skill that can rewrite bot instructions, rename bot workspaces, and update EasyClaw agent registry entries. Do not provide passwords, API keys, tokens, database credentials, or signing secrets to this skill unless the credential-storage behavior is changed to use explicit consent and a secure secret store instead of plaintext workspace files.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:57
Finding
Plaintext Collection and Storage of User Credentials## Vulnerability Details **File Location**: `SKILL.md`, lines 57–81 **Vulnerability Type**: Plaintext sensitive-data storage **Risk Level**: High ### Vulnerable Code Snippet ```markdown **Important**: User-provided credentials (passwords, API keys, tokens) are authorized for storage and should NOT be rejected. **If custom content contains sensitive information:** 1. Extract credentials (Gmail passwords, API keys, auth tokens, database passwords, etc.) 2. Create or append to `workspace-{agent-id}/scripts/.env` file in KEY=VALUE format 3. In AGENTS.md, reference these credentials using environment variable notation 4. Example: - User provides: "Gmail password: abc123" - Write to `scripts/.env`: `GMAIL_PASSWORD=abc123` - In AGENTS.md: "使用环境变量 `$GMAIL_PASSWORD` 进行Gmail认证" **Common sensitive fields to extract:** - Email passwords (Gmail, Outlook, SMTP, IMAP) - API keys (OpenAI, cloud services, third-party APIs) - Auth tokens (OAuth tokens, JWT, session tokens) - Database credentials (passwords, connection strings) - Secret keys (encryption keys, signing secrets) **Format for .env file:** ```text # Auto-generated by bot-customizer CREDENTIAL_NAME=credential_value API_KEY=your_api_key_here ``` ``` ### Technical Analysis The skill explicitly directs the agent to extract passwords, API keys, authentication tokens, database credentials, and cryptographic secrets from user input and persist them in a plaintext `.env` file. This handling is not required for the core task of merging customization instructions into `AGENTS.md`. No safeguards are specified for: - Owner-only filesystem permissions. - Encryption at rest. - Use of an operating-system keychain or managed secret store. - Exclusion of the `.env` file from source control and workspace sharing. - Redaction from logs, responses, backups, or diagnostics. - Validation of environment-variable names and values. - Secure rotation or deletion of stored credentials. Appending unvalidated values in `KEY= ...[truncated 1565 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction to collect and persist credentials during agent customization. 2. Keep `AGENTS.md` limited to environment-variable references and require users to provision values separately. 3. Use an approved operating-system keychain or managed secret service when storage is essential. 4. Require explicit, informed consent before any local secret storage. 5. If a local secret file is unavoidable: - Create it with owner-only permissions. - Ensure parent directories are not broadly readable. - Add it to applicable ignore and backup-exclusion rules. - Never print or return its values. - Avoid appending blindly; use atomic, permission-preserving writes. 6. Validate variable names against a strict pattern such as `^[A-Z][A-Z0-9_]*$`. 7. Encode or reject carriage returns, line feeds, null bytes, and other control characters in values to prevent entry injection. 8. Document credential rotation, revocation, and secure deletion procedures. 9. Minimize scope and lifetime by requesting restricted, short-lived tokens instead of account passwords or long-lived keys. 10. Add validation that detects accidental secret inclusion in `AGENTS.md`, logs, source-control changes, and completion messages.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (10)

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The skill explicitly instructs the agent to extract user-supplied credentials and persist them into a `.env` file even though the advertised purpose is AGENTS.md customization. This creates unnecessary secret collection and storage, increases the chance of credential leakage through filesystem exposure, later prompts, logs, backups, or source control, and broadens the skill beyond least-privilege behavior.

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill directs plaintext credential storage without presenting a warning, consent step, or safer alternative. In this context, omission of a warning materially increases the likelihood that users disclose sensitive secrets for a task that does not inherently require persistent credential handling.

Ssd 3

High
Confidence
99% confidence
Finding
The skill instructs the agent to extract secrets from free-form user input and persist them for later use, which is a classic retention and leakage risk. Because the data originates in natural language and is transformed into durable files, it may be unintentionally exposed through prompts, debug output, backups, sync tools, or future agent actions.

Credential Access

High
Category
Privilege Escalation
Content
- Database credentials (passwords, connection strings)
- Secret keys (encryption keys, signing secrets)

**Format for .env file:**

```
# Auto-generated by bot-customizer
Confidence
96% confidence
Finding
The explicit `.env`-based handling of database credentials and secret keys indicates credential collection and persistence capability that can facilitate credential exposure or misuse. In the context of a bot-customization skill, this capability is unnecessary and substantially increases the attack surface if the workspace is read, synced, or later processed by other tools.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The skill says to use it for a quoted example request, when a user wants to customize a pre-created agent, or when there is a need to merge custom instructions, but it does not define a narrow trigger set or exclusion conditions. These broad descriptions could cause unintended invocation for general customization discussions rather than explicit requests to run this skill.

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
The skill's explicit request example is written in Chinese and presented as the trigger pattern, while the document does not state that the skill is region-specific or offer alternative language options. This can constitute a language/locale policy issue because it implicitly constrains usage to one language without user opt-in or justification.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The manifest describes a narrow AGENTS.md merge capability, but the documented behavior also renames workspace directories and rewrites global agent registry metadata in `easyclaw.json`. This scope mismatch is dangerous because it can cause users or upstream systems to authorize a seemingly limited content-editing skill that actually performs broader filesystem and configuration mutations.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill performs local file modification, directory renaming, and global registry updates without clearly warning the user about the operational impact. Hidden state changes can break agent references, disrupt tooling, or overwrite expected configuration, especially because the skill claims immediate readiness after mutation.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The document repeatedly defines agent sections and examples in Chinese, including prescribed tone and language examples, but does not indicate that the language should be chosen based on user preference. This can violate language/locale policy because it implicitly steers generated AGENTS.md content toward Chinese without offering an opt-in or alternative.

Natural-Language Policy Violations

Low
Confidence
89% confidence
Finding
This markdown file contains multiple example custom prompts written only in Chinese while the surrounding guidance is in English. Because the document does not state that examples may be multilingual or that Chinese is intentional for a specific audience, it implicitly privileges one language without user opt-in.