T05 · Unauthorized Access and Privilege Escalation
- Location
index.js:164- Finding
Gateway Restart Is Performed Without Explicit User Confirmation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Feishu bot manager is purpose-related but needs Review because it can store app secrets, broaden bot access, change global OpenClaw settings, and restart the Gateway automatically.
Review before installing. Use this only in an environment where the operator is allowed to modify OpenClaw configuration and restart the Gateway. Avoid pasting production Feishu App Secrets into chat or shell history, rotate any secret already exposed this way, check ~/.openclaw backups for plaintext secrets, and verify bot DM policy and allowlists before enabling the account.
index.js:164Gateway Restart Is Performed Without Explicit User Confirmation
index.js:120Bot Accounts Default to Unrestricted Direct-Message Access
references/new-agent-governance.md:3Bot Provisioning Injects Persistent Governance and Memory Rules into New Agents
index.js:199Feishu App Secrets Are Accepted Through Command-Line Arguments and Replicated into Backups
lib/validator.js:5Implemented Input Validators Are Not Applied Before Configuration Mutation
package.json:8Unused Floating Third-Party Dependency Expands the Supply-Chain Attack Surface
声明描述的是一个具备实际管理能力的技能,会执行飞书机器人账户新增、绑定路由到 Agent、以及可能创建新 Agent 工作区等操作。但提供的代码块只包含若干正则校验函数和一个 validateConfig 方法,用于检查配置对象中 channels.feishu.accounts 与 bindings 的格式和必填字段。这属于辅助性输入/配置校验逻辑,不等同于所声明的核心业务能力。虽然这些校验可能服务于该技能的实现,但就当前代码块本身来看,其实际行为与声明的主要用途存在明显落差,因此应判定为不匹配。
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill explicitly instructs users to paste an App Secret into the chat workflow without any warning about credential sensitivity, secure collection channel, masking, storage policy, or redaction. In this context, the secret can grant control over a Feishu bot integration, so exposing it in conversational logs, prompts, telemetry, or operator-visible transcripts creates a real credential-compromise risk.
The skill performs side effects beyond editing Feishu bot/account bindings: it changes a global OpenClaw session setting and restarts the gateway. Those actions affect the entire platform, not just the targeted bot, so invoking this skill can unexpectedly alter unrelated agents and active sessions.
The code invokes operational CLI commands via execSync to reconfigure runtime behavior and restart the gateway. Even though the command strings are static, this grants the skill privileged operational control that exceeds the narrow purpose of bot binding, increasing blast radius and enabling service disruption or unintended platform-wide reconfiguration.
This JavaScript file contains natural-language comments and emitted error strings entirely in Chinese, including messages likely surfaced to users or operators during validation failures. Under the policy, forcing a specific language without user opt-in or documented justification is a locale/language policy violation.
The instruction explicitly tells the agent to reply with the fixed Chinese phrase “收到,正在处理 XXX” before acting. This imposes a specific language behavior without offering the user a language/locale choice or documenting a justified locale constraint.
The governance file requires persistent storage of user-related information in MEMORY.md, daily logs, and USER.md, but it provides no data minimization, consent, retention, or secret-handling rules. In a bot/account management skill, these files can easily accumulate access details, behavioral profiles, or operational secrets, increasing the chance of privacy leakage or credential exposure.
The natural-language description is only provided in Chinese ("飞书多账户机器人配置管理"), which can indicate a language-specific constraint without offering users a choice or documenting that the skill is intentionally region-specific. Under the policy, language or locale restrictions should be explicit and justified rather than implicitly imposed.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"start": "node index.js"
},
"dependencies": {
"readline": "^1.3.0"
}
}
Detected: suspicious.dangerous_exec