T09 · Insecure Skill Coding Practices
- Location
SKILL.md:28- Finding
Shell Command Injection Through User-Controlled ARC Metadata
- Content
View full analysis
` and set investigation metadata via: ```bash arc investigation update -i "" --title "" --description "<desc>" ``` ``` `SKILL.md:46-50`: ```markdown Create with: ```bash arc study init --studyidentifier "<id>" arc study update --studyidentifier "<id>" --title "<title>" --description "<desc>" ``` ``` `SKILL.md:67-70`: ```markdown Create with: ```bash arc assay init -a "<id>" --measurementtype "<type>" --technologytype "<tech>" ``` ``` `SKILL.md:100-103`: ```markdown Add via: ```bash arc investigation person register --lastname "<last>" --firstname "<first>" --email "<email>" --affiliation "<aff>" ``` ``` `SKILL.md:107-117`: ```markdown 1. Configure git user: ```bash git config user.name "<name>" git config user.email "<email>" ``` 2. Commit: ```bash git add -A git commit -m "Initial ARC: <investigation title>" ``` ``` ### Technical Analysis The placeholders in these command templates represent values collected conversationally from the user. If the agent replaces the placeholders with raw input and submits the resulting text to a shell, shell syntax contained in those values is interpreted during command parsing. Double quotes do not make this construction safe. They prevent ordinary word splitting and pathname expansion, but still permit command substitution such as `$(command)` and backtick substitution. Quote-breaking input can also terminate the quoted argument and append additional shell operators. The ARC path invocation is particularly expose ...[truncated 2522 chars]- Remediation
View remediation
