T09 · Insecure Skill Coding Practices
- Location
scripts/publish.js:18- Finding
Shell Command Injection in the Release Workflow
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s chat features are coherent, but it applies them by rewriting installed Zalo driver files across OpenClaw paths without enough scoping or confirmation.
Review before installing. Run this only in an isolated or test OpenClaw workspace where modifying the Zalo channel driver is acceptable, inspect which files will be changed, and keep the restore path available. Avoid running scripts/publish.js unless you are maintaining the package and have fixed the shell-command and unpinned-CLI risks.
scripts/publish.js:18Shell Command Injection in the Release Workflow
scripts/publish.js:50Unpinned Third-Party CLI Execution During Publishing
The skill is presented as a chat-behavior customization, but the content explicitly instructs users to run a patch script that modifies local library files and supports restore behavior. That is a significant capability beyond the declared purpose and creates supply-chain and integrity risk because operators may execute filesystem-altering code they did not expect from a simple messaging skill.
The skill is presented as a chat-behavior customization, but the content explicitly instructs users to run a patch script that modifies local library files and supports restore behavior. That is a significant capability beyond the declared purpose and creates supply-chain and integrity risk because operators may execute filesystem-altering code they did not expect from a simple messaging skill.
The README instructs users to run a patch script that modifies installed channel driver files in their workspace, but it does not clearly warn that this operation alters third-party code and may affect integrity, updates, rollback safety, or future behavior. In a skill whose primary purpose is to patch messaging behavior, that omission materially increases the chance of users making sensitive code changes without informed consent or understanding the operational risk.
The skill provides direct patch and restore commands without warning that they will alter the local environment, likely modify installed library code, and may affect system behavior outside the skill itself. Users may run these commands assuming they are harmless setup steps, increasing the chance of unintended code modification or persistence.
The skill description suggests simple mention/sticker behavior, but the script scans multiple global/project directories and patches installed library files in place. That hidden scope expansion is dangerous because it changes shared dependencies for other bots/projects, creating unexpected persistence and cross-project side effects outside the declared skill boundary.
The script writes backups and overwrites installed library code automatically, without interactive confirmation, dry-run mode, or explicit operator acknowledgement. This is risky because executing the skill immediately mutates runtime dependencies and can silently alter behavior of shared environments, making rollback and change control harder.
The manifest describes a skill that tags senders in Zalo group chat and sends stickers based on keywords. This script instead automates repository commits, pushes Git tags, and publishes the package to ClawHub, which are software release capabilities not justified by the stated runtime purpose of the skill.
The script invokes npx clawhub publish without pinning an exact package version, which allows execution of whatever clawhub version is resolved at runtime. If the upstream package is compromised, replaced, or unexpectedly changed, the release workflow could execute attacker-controlled code with the developer's local permissions during publishing.
The manifest says the skill automatically tags the sender in group chat and sends stickers by keyword. This patch also intercepts outgoing text beginning with '/search-sticker' and turns it into a sticker search/result listing feature, which is a separate user-facing behavior not described in the manifest.
The skill hardcodes Vietnamese output messages for sticker search results and errors, which imposes a specific language on users regardless of their preferences. There is no opt-in, locale selection, or documented reason that this skill is intended only for Vietnamese-speaking contexts.
Detected: suspicious.dangerous_exec