T05 · Unauthorized Access and Privilege Escalation
- Location
references/feishu-setup.md:66- Finding
Overprivileged Feishu Permission Bundle Violates Least Privilege
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its setup-wizard purpose, but it asks users to paste Feishu secrets into chat and recommends broad permissions and persistent agent-profile writes without enough safeguards.
Review this skill carefully before installing. Do not paste Feishu App Secrets into chat; enter secrets only through a local masked prompt, environment variable, or trusted secret store. Reduce Feishu permissions to the minimum needed for message receive/send and routing, and run the starter-profile writer only on new empty workspaces or after backing up existing agent files.
references/feishu-setup.md:66Overprivileged Feishu Permission Bundle Violates Least Privilege
references/feishu-setup.md:43Feishu App Secret Is Explicitly Collected Through AI Conversation History
scripts/write_starter_profile.py:281Starter Profile Generator Unconditionally Overwrites Persistent Agent State
scripts/write_starter_profile.py:244Unsanitized Agent Name Enables Persistent Instruction Injection
The declared description says this skill should guide beginners through OpenClaw multi-agent setup with a step-by-step wizard, including creating multiple agents and Feishu channel bindings. The supplied code does none of that. It is a narrow helper script that accepts agent display names and outputs JSON containing suggested unique agent IDs. It neither orchestrates setup nor interacts with OpenClaw configuration, Feishu, or any wizard interface. This is a materially different primary purpose, so it is a clear mismatch.
The declared description says this skill guides beginners through OpenClaw multi-agent setup, including multiple agents and Feishu bindings. The supplied code does none of that. It only accepts one or more agent display names as CLI arguments, applies keyword-based rules to suggest a persona kind such as product, engineering, or data, and prints the result as JSON. This is materially different from the declared primary purpose and lacks the described setup, wizard, and integration behavior.
The declared description says this skill guides beginners through OpenClaw multi-agent setup with step-by-step help and Feishu bindings. The supplied code instead defines a small CLI script that accepts workspace/name/kind arguments, creates the workspace directory, calls write_bundle from another module, and prints JSON about the files written. Its observed behavior is profile/bundle file generation, not an interactive setup wizard or multi-agent/Feishu configuration workflow. This is a clear material mismatch in primary purpose and capabilities.
The declared description says this skill guides beginners through OpenClaw multi-agent setup with a step-by-step wizard, including creating multiple agents and Feishu bindings. The supplied code does not implement any wizard, conversational guidance, multi-agent orchestration setup, or Feishu integration. Instead, it is a command-line utility that writes a predefined set of markdown profile files into a workspace for one agent role. This is a materially different primary purpose, so the description does not accurately represent the code.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# OpenClaw Multi-Agent Wizard
A beginner-friendly Codex/OpenClaw skill that helps users create OpenClaw multi-agent setups step by step, with a strong focus on simple explanations, Feishu onboarding, and safe defaults.
## GitHub Description
The skill explicitly instructs the agent to inspect local environment state, modify configs, write files, restart services, and guide Feishu integration, which implies file-write and network/system capabilities. Omitting an explicit tool scope or permissions declaration increases the chance the skill runs with broader-than-necessary access and makes it harder to review what authority it should have.
Soliciting sensitive credentials directly in the conversational workflow normalizes insecure secret handling and exposes the App Secret to transcript retention, debugging logs, prompt injection side effects, or unintended downstream tool access. Because this skill is an onboarding wizard for beginners, users are especially likely to follow the unsafe instruction without understanding the exposure.
The skill tells the agent to have the user paste Feishu App ID and App Secret directly into chat, but provides no warning, masking guidance, or secure collection channel. Secrets entered into chat may be logged, retained, exposed to other tools, or leaked through transcripts, creating credential-compromise risk for the Feishu integration.
The skill enables implicit invocation but provides no visible trigger constraints, narrowing logic, or safety gating in this file. That means the platform may auto-activate the wizard based on broad user intent matching, which can cause the agent to take configuration-oriented actions unexpectedly or in the wrong context, increasing the chance of unintended setup changes or social-engineering-assisted misuse.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Wizard behavior:
1. choose a safe agent ID
2. create the agent with an explicit workspace when possible
3. verify with `openclaw agents list`
### Identity branch
The skill explicitly tells the operator to collect Feishu App ID and App Secret and to place them into configuration examples, but it does not warn about secret handling, secure storage, redaction in logs, or avoiding plaintext sharing through the chat wizard. In an agent-assisted setup flow, this increases the risk that users paste credentials into unsafe channels, store them in world-readable files, or expose them through logs and transcripts.
The dialogue says 'I'll start it first,' implying the skill can initiate a gateway service rather than merely guide the user. That creates a capability expectation mismatch: users may authorize or trust system-modifying actions the skill was only described as explaining, which can lead to unsafe automation boundaries and unintended operational changes.
The script states the assistant will create agents and write role files, which implies direct file/configuration changes beyond the manifest's beginner-friendly guidance framing. This can mislead users about the trust boundary and increases the risk of unauthorized or poorly reviewed modifications to agent behavior and local configuration.
The script explicitly instructs users to paste a Feishu App Secret into chat and says the assistant will 'handle the OpenClaw side.' This exceeds a beginner-guidance role and normalizes collection of sensitive credentials through conversational channels, creating a direct risk of secret exposure, retention, or misuse.
Requesting that a user paste an App Secret into chat without any warning or secure-handling instructions is an unsafe secret collection pattern. Secrets shared in conversation may be logged, retained, exposed to other tools, or copied into prompts, making compromise of the Feishu app materially more likely.
The script directly instructs users to paste App ID and App Secret into the chat, which is a classic sensitive-data exposure issue. In this context, the skill targets beginners, making it more dangerous because inexperienced users are more likely to comply and less likely to understand the persistence and distribution risks of sharing credentials in-chat.
The skill explicitly instructs the user to paste the Feishu App Secret into the chat, causing a sensitive credential to be disclosed to the agent/runtime. Even if intended for convenience, this exceeds the minimum need of a setup wizard and creates a real risk of secret capture in logs, transcripts, prompt history, telemetry, or downstream tooling.
The instructions request App ID and App Secret with no security warning or handling guidance. This normalizes unsafe secret-sharing behavior and increases the chance that valid credentials are exposed through conversation history or copied into insecure places during onboarding.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# Persona Templates
Write a very short starter profile for each new agent so the user does not get an empty shell.
## Rules
The helper examples and default mappings use Chinese agent names such as '产品助理' and '数据助理', and the suggested workflow/default behavior is framed around those names. The file does not explicitly offer users a language or locale choice or explain that this locale-specific convention is optional, which can violate language/locale policy requirements.
The document presents key workflow options using Chinese labels (多 bot 多 agent, 单 bot 多 agent) as the primary names, but it does not offer an English alternative, user language selection, or a justification for requiring Chinese terminology. This can violate language/locale policy because users may be forced into a specific language context without opt-in.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
If the agent name already strongly suggests a role:
- infer the starter persona kind automatically
- do not ask the user to choose unless the name is ambiguous
- for A2A worker names, also recognize obvious specialist roles like `data`, `writing`, `project`, and `research`
## The one sentence promise
The troubleshooting guidance explicitly tells the agent to start or restart the gateway, which is a system-affecting action, without requiring user confirmation or clearly warning that a local service will be modified. In an agent skill, this can lead to unauthorized operational changes, surprise service disruption, or execution in the wrong environment if the agent acts automatically.
The instruction says to try starting the gateway automatically if a status check fails, but it does not require notifying the user or obtaining confirmation first. In a beginner-oriented setup wizard, this can trigger an unexpected local service state change, which may have side effects such as opening ports, consuming resources, or modifying runtime state without the user's explicit approval.
The file instructs the agent to inspect local logs or state during troubleshooting without disclosing that this may access potentially sensitive local application data. Even if done for legitimate debugging, silent log/state inspection can expose secrets, message contents, identifiers, or configuration details beyond what the user expects.