T09 · Insecure Skill Coding Practices
Error
- Location
references/openclaw-cron-resume.md:8- Finding
Shell Command Injection Through Unescaped Cron Callback Parameters
- Content
View full analysis
" \ --at +90s \ --agent \ --session isolated \ --light-context \ --tools gateway,message,exec \ --announce \ --account \ --channel \ --to \ --delete-after-run \ --timeout-seconds 120 \ --message '' ``` ### Technical Analysis The documented command directs an agent to substitute captured routing metadata and a generated callback message directly into a shell command. Dynamic values such as the agent identifier, account, channel, destination, and callback message are not required to undergo shell-safe encoding or strict format validation. The single quotes around the `--message` value are insufficient protection. An apostrophe within the generated content can terminate the quoted string, after which shell metacharacters may introduce additional commands. The other placeholders are unquoted and could permit argument injection, command substitution, redirection, or command chaining if their values contain shell-significant characters. The instruction that the routing payload be “sanitized” only prohibits secrets, transcripts, and unnecessary data. It does not define shell metacharacter filtering, identifier allowlists, or context-appropriate argument escaping. Consequently, an implementation that follows this template through a shell may be vulnerable. ### Attack Path 1. An attacker causes shell-significant content to enter routing metadata or another dynamic field used to construct the cron callback. Depending on the integration, this may occur through an attacker-contro ...[truncated 1519 chars]- Remediation
View remediation
