T09 · Insecure Skill Coding Practices
- Location
scripts/patch-config.sh:2- Finding
Arbitrary JavaScript Execution Through Configuration Path Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly does what it claims, but it starts an unauthenticated local proxy using your Yandex credentials and includes unsafe scripts that modify configuration and use shared temporary files.
Install only after reviewing or patching the scripts. Use a dedicated least-privilege Yandex API key, set ~/.openclaw/yandexgpt.env to owner-only permissions, back up openclaw.json before running patch-config.sh, avoid untrusted OPENCLAW_CONFIG values, and do not run the proxy on shared machines unless local authentication, request limits, and private runtime files are added.
scripts/patch-config.sh:2Arbitrary JavaScript Execution Through Configuration Path Injection
scripts/start.sh:4Predictable Shared Temporary Files Permit Symlink-Based File Overwrite
scripts/stop.sh:2Untrusted PID File Can Be Used to Signal an Unrelated Process
src/proxy.js:112Unauthenticated Local Clients Can Consume the Configured Yandex API Account
src/proxy.js:104Unbounded HTTP Request Buffering Enables Memory Exhaustion and Slow-Request Denial of Service
scripts/setup.sh:3Credential Environment File Is Created Without Restrictive Permissions
The declared purpose is a translation proxy, but the skill also instructs modification of OpenClaw configuration and its described behavior is not substantiated in the provided file. This mismatch is dangerous because deceptive or incomplete descriptions can cause users to approve execution or config changes they would not otherwise allow, enabling persistence or unsafe provider registration.
The skill declares shell and environment-variable dependent behavior but does not declare any explicit tool scope or permissions. That creates an authorization and transparency gap: a user or orchestrator may treat the skill as low-risk documentation while it actually invokes scripts, reads secrets, and starts local services.
The script unconditionally rewrites the user's OpenClaw configuration file and injects a new provider entry without any confirmation, backup, or dry-run behavior. This is dangerous because it silently changes persistent user settings, can overwrite existing configuration state, and may redirect future model traffic to a local HTTP endpoint the user did not explicitly approve.
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.
exit 0
fi
nohup node "$SCRIPT_DIR/../src/proxy.js" > /tmp/yandexgpt-proxy.log 2>&1 &
echo $! > "$PID_FILE"
echo "YandexGPT proxy started (PID $!)"
sleep 1
This shell script kills the process identified in the PID file and then removes that file, which are safety-relevant actions affecting system state. There is no confirmation prompt, explanatory comment, or user-facing warning beyond a generic status message, so the destructive behavior is not disclosed in the file itself.