T09 · Insecure Skill Coding Practices
- Location
SKILL.md:60- Finding
Shell Command Injection Through Interpolated Task Text
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed guide for launching coding agents, but it repeatedly encourages high-impact unsandboxed or auto-approved runs, package installs, and remote GitHub changes without strong review gates.
Install only if you are comfortable with a skill that can guide your agent to launch other coding agents with broad local authority. Prefer sandboxed runs, isolated worktrees or containers, pinned dependencies, and manual review before commits, pushes, PR comments, or PR creation. Avoid using the `--yolo` examples on sensitive or untrusted repositories.
SKILL.md:60Shell Command Injection Through Interpolated Task Text
SKILL.md:92Delegated Agents Are Encouraged to Run Without Sandbox or Approval Controls
SKILL.md:151Unpinned Package Installation and Unreviewed Lifecycle-Script Execution
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
## Codex CLI
**Model:** `gpt-5.2-codex` is the default (set in ~/.codex/config.toml)
### Flags
This example tells an autonomous --yolo run to 'Commit and push,' combining no-sandbox/no-approval execution with immediate remote publication. That is especially dangerous because it allows unreviewed code, secrets, destructive changes, or malicious modifications to be persisted locally and propagated to a remote repository without a human checkpoint.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
gh pr create --repo user/repo --head fix/issue-78 --title "fix: ..." --body "..."
git worktree remove /tmp/issue-78 git worktree remove /tmp/issue-99
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
git worktree remove /tmp/issue-78 git worktree remove /tmp/issue-99
---
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.
For quick prompts/chats, create a temp git repo and run:
# Quick chat (Codex needs a git repo!)
--full-auto auto-approves changes in the workspace, reducing human oversight over edits produced by the delegated agent. While less dangerous than --yolo, it still encourages unattended modification of project files, which can introduce insecure code or unintended changes if used broadly.
| Flag | Effect |
| --------------- | -------------------------------------------------- |
| `exec "prompt"` | One-shot execution, exits when done |
| `--full-auto` | Sandboxed but auto-approves in workspace |
| `--yolo` | NO sandbox, NO approvals (fastest, most dangerous) |
### Building/Creating
Documenting a mode with 'NO sandbox, NO approvals' is an endorsement of autonomous execution without safety controls. In a skill designed to launch coding agents on local projects, this increases the risk that the child agent can make broad uncontrolled changes or perform unexpected actions in the working environment.
| --------------- | -------------------------------------------------- |
| `exec "prompt"` | One-shot execution, exits when done |
| `--full-auto` | Sandboxed but auto-approves in workspace |
| `--yolo` | NO sandbox, NO approvals (fastest, most dangerous) |
### Building/Creating
This concrete example operationalizes --full-auto for building tasks, reinforcing unattended workspace modification as normal practice. In real projects, that can create insecure or unexpected code changes with no review checkpoint before the task completes.
# Quick one-shot (auto-approves) - remember PTY!
bash pty:true workdir:~/project command:"codex exec --full-auto 'Build a dark mode toggle'"
# Background for longer work
The examples promote --yolo, which explicitly disables sandboxing and approvals, without a strong user-facing control gate tied to destructive consequences. Encouraging this mode normalizes unrestricted autonomous execution, increasing the chance of unintended file changes, credential exposure, or remote side effects when used in real repositories.
The skill materially expands scope from delegating local coding work to performing external side-effecting GitHub operations such as cloning, commenting on PRs, pushing branches, and creating PRs. That broadens the delegated agent's authority from code editing into remote repository modification, which can leak data, spam or tamper with PR discussions, and publish unreviewed changes to remotes.
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.
For fixing multiple issues in parallel, use git worktrees:
# 1. Create worktrees for each issue
git worktree add -b fix/issue-78 /tmp/issue-78 main
git worktree add -b fix/issue-99 /tmp/issue-99 main
The rules section explicitly recommends --full-auto for building, normalizing autonomous approval as standard operating procedure. Recommending reduced oversight in a reusable skill increases the likelihood that operators invoke it in sensitive repositories without appreciating the review gap.
- If an agent fails/hangs, respawn it or ask the user for direction, but don't silently take over.
3. **Be patient** - don't kill sessions because they're "slow"
4. **Monitor with process:log** - check progress without interfering
5. **--full-auto for building** - auto-approves changes
6. **vanilla for reviewing** - no special flags needed
7. **Parallel is OK** - run many Codex processes at once for batch work
8. **NEVER start Codex in ~/.openclaw/** - it'll read your soul docs and get weird ideas about the org chart!
The skill instructs embedding a host-level notification command inside the delegated agent's prompt, effectively granting the spawned coding agent authority to emit system events on the host. This creates an out-of-band signaling channel that can be abused for spoofed completion signals, prompt injection pivoting, or triggering unintended host workflows beyond the original coding task.
The heading text states 'Use bash (with optional background mode) for all coding agent work,' but this is softened rather than contradicted by later examples. However, the stronger manifest claim of delegation 'via background process' conflicts with repeated foreground examples like codex exec, claude, opencode run, and pi commands that are not backgrounded.
No suspicious patterns detected.