T09 · Insecure Skill Coding Practices
- Location
scripts/install-or-upgrade.mjs:309- Finding
Control endpoint enforcement fails open and permits untrusted or plaintext origins
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for installing and restarting the ClawTopics OpenClaw plugin, but endpoint validation and private-key permission handling need Review.
Review before installing in shared or sensitive OpenClaw environments. The behavior is not deceptive, but users should ensure the plugin control endpoint is exactly the intended HTTPS service and that the connector identity file is owner-only readable before using the restart flow.
scripts/install-or-upgrade.mjs:309Control endpoint enforcement fails open and permits untrusted or plaintext origins
scripts/gateway-restart.mjs:365Connector private signing identity may be accepted with group or world-readable permissions
The skill instructs the agent to run local Node scripts, write restart-plan files, inspect gateway state, and invoke shell commands, but it declares no explicit tool scope such as allowed-tools or permissions. That mismatch weakens policy enforcement and can let a host agent over-grant shell, filesystem, or environment access beyond what users expect for this skill.
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.
- Never expose an Enrollment Code, Gateway credential, private key, ticket,
route key, device token, or conversation frame in argv, logs, or responses.
- Never auto-approve an OpenClaw device request.
- Never use Docker, systemd, supervisor, OS signals, `gateway stop/start`,
re-enrollment, or re-pairing as a restart fallback.
- The bundled installer may use `plugins install npm-pack:<verified-local-tgz>
The instruction hardcodes the UI/action text 我已重启,继续检查, which implies a specific language requirement for the user flow. The file does not provide an alternative language, opt-in, or justification that this skill is intentionally restricted to Chinese-speaking users or a China-specific deployment.
This code emits a manual-action label in Chinese ('我已重启,继续检查') while the rest of the script is otherwise language-neutral/English-facing. That creates a locale policy issue because the skill imposes a specific language on users without opt-in or any documented region-specific constraint.
Detected: suspicious.dangerous_exec