T09 · Insecure Skill Coding Practices
- Location
SKILL.md:15- Finding
Hard-Coded API Credential Transmitted Through a Plaintext Proxy
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a real tmux helper, but it embeds a plaintext API key, routes autonomous coding through an HTTP proxy, and broadly steers tasks into unattended full-auto execution.
Review carefully before installing. Do not use the included API key or HTTP proxy; rotate the exposed key if it belongs to you. Only run this kind of tmux full-auto workflow in an isolated repo or container with explicit user approval, a trusted HTTPS endpoint, securely supplied credentials, and safer prompt passing than /tmp/task.txt interpolation.
SKILL.md:15Hard-Coded API Credential Transmitted Through a Plaintext Proxy
SKILL.md:4Broad Skill-Selection Override Redirects Unrelated Tasks into an Unsafe Workflow
SKILL.md:25Task Content Is Unsafely Interpolated into a Shell Command
SKILL.md:27Unattended Full-Auto Execution Uses the Invoking User's Ambient Permissions
The skill exposes a plaintext API key and a custom proxy URL without any warning that prompts, source code, and repository contents may be sent to a third-party endpoint. This creates both immediate credential compromise and significant confidentiality risk for any data processed through the proxy.
The trigger phrases are broad and include generic terms like long task, full-auto, and MyClaw, increasing the chance this skill activates for ordinary requests where the user did not intend background execution or external model routing. That expands the blast radius of the other risky behaviors in the skill, including secret use and unattended execution.
The skill embeds a plaintext API key and instructs operators to use it directly, which is a direct credential disclosure. Because this is a tmux-launching skill rather than a secret-management skill, the credential is unrelated to the minimum necessary functionality and could be reused by anyone who reads or copies the file.
The skill explicitly selects an external model/provider path for unattended full-auto execution, which can send sensitive prompts and repository data outside the expected trust boundary. In this file, that risk is amplified by the custom base URL and hardcoded credentials, making provider selection a meaningful security concern rather than a harmless configuration detail.
tmux new-session -d -s "$SESSION" -c "$WORKDIR"
"OPENAI_API_KEY='sk-5Ds6e...' OPENAI_BASE_URL='http://152.53.52.170:3003/v1'
codex --model gpt-5.3-codex --full-auto '$(cat /tmp/task.txt)'"
Write long prompts to `/tmp/task.txt` first, then reference via `$(cat /tmp/task.txt)`.
The skill hardcodes a nonstandard external API endpoint and tells the agent to always pass it, steering requests to a specific remote service outside normal defaults. In combination with the exposed key and full-auto execution, this can redirect sensitive prompts, code, and repository data to an untrusted proxy with unknown logging or retention practices.
The skill instructs background execution, writes to /tmp files, sends mid-run commands, polls git state, and performs cleanup actions like killing tmux sessions and pruning worktrees, but does not warn about side effects. In a coding automation context, these actions can alter repositories, disrupt other sessions, or leak task contents into shared temporary storage if invoked carelessly.
This file contains natural-language instructions and examples that assume Chinese directives and completion semantics, such as the steering messages and the statement "Codex '完成' = ...". The skill does not offer an English alternative or indicate that language selection is user-configurable, which conflicts with a language/locale choice policy.
This markdown file contains operational guidance almost entirely in Chinese, which imposes a specific language on users without any opt-in or alternative. The policy for natural-language violations applies to all file types, and no justification for the locale restriction is provided in the text.