T09 · Insecure Skill Coding Practices
- Location
references/examples.md:317- Finding
Shell Command Injection Through an Unquoted Repository File Path
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a broad repository agent that can guide multi-file edits and command execution, but it lacks clear user-control and safety boundaries for those high-impact actions.
Review before installing. This is not evidence of malware, but it gives an agent broad repository-editing and command-execution patterns without enough built-in guardrails. Use it only in trusted repositories, require explicit approval before edits or shell commands, run validations in a sandbox without secrets, and avoid copying the npx or command-string examples directly into production tooling.
references/examples.md:317Shell Command Injection Through an Unquoted Repository File Path
references/examples.md:317Unpinned Third-Party Package Execution Through npx
Referenced artifact was not completely inspected
> 📎 **Code example 1** (typescript) — see [references/examples.md](references/examples.md)
Referenced artifact was not completely inspected
> 📎 **Code example 1** (typescript) — see [references/examples.md](references/examples.md)
The invocation description is extremely broad ('repository-level code understanding', 'multi-file editing', 'natural language to code execution') and provides no clear trigger boundaries or safety constraints. That makes it easy for an orchestrator or user to invoke a highly capable skill in situations where a narrower, safer tool should be used, increasing the chance of unintended code execution or repository-wide changes.
The skill explicitly advertises execution surfaces ('Docker sandbox, Jupyter, Bash') together with repository modification capabilities, but does not warn about command execution, secrets exposure, filesystem impact, or data loss. In a repository agent context, this is more dangerous because users may assume analysis-only behavior while the skill is positioned to run commands and alter many files.
Listing 'Delete - Remove code safely' normalizes destructive modification without any explicit caution, approval gate, or backup/rollback requirement. In a repository-wide agent, deletion can remove business logic, tests, or security controls across multiple files, so the absence of warnings and guardrails materially increases operational risk.
The example shows automatic applyEdit, rollbackEdit, and alternative edit generation across repository files without any explicit user-consent, dry-run, or warning boundary. In a repository-level code agent, silent write capability is security-relevant because prompt-driven or malformed planning can alter sensitive files, introduce backdoors, or destroy code at scale.
The example defines validation as free-form shell commands (command: string) and later executes them through runValidation(validation), enabling arbitrary command execution if validation steps are influenced by untrusted inputs or generated content. In a repository agent context, this is more dangerous because the agent already processes natural-language tasks and code context, making command injection or unsafe command selection a realistic failure mode.
The example includes subprocess-style validation commands (npx tsc, npm run lint, npm test) but provides no warning, consent flow, or trust boundary for executing code from the target repository. This is dangerous because build and test scripts are attacker-controlled in untrusted repositories and can execute arbitrary code on the host when the agent runs validation.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
No suspicious patterns detected.