T09 · Insecure Skill Coding Practices
- Location
scripts/cz_cli.sh:20- Finding
Shell Command Injection Through Unsafe Copy-and-Run Command Generation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The package contains a real commit-message helper, but it also ships an undisclosed local data-storage utility and prints unsafe copy-and-run git commands.
Review before installing. Use only the documented cz_cli.sh interface with trusted commit text, avoid copy-pasting generated git commands that contain untrusted quotes or shell characters, and be aware that the package includes an extra script that can persist and export local user-supplied data.
scripts/cz_cli.sh:20Shell Command Injection Through Unsafe Copy-and-Run Command Generation
scripts/script.sh:5Undocumented Plaintext Persistence of User-Supplied Arguments
The declared description says this skill is a Commitizen/cz-cli conventional commit helper. However, the code implements a multi-purpose local utility with generic CRUD-like commands and logging to files under a user data directory. There is no evidence of interacting with git commits, generating conventional commit messages, invoking cz-cli, enforcing commit conventions, or providing commit-helper behavior specific to Commitizen. The primary purpose is materially different from the declared one, so this is a clear mismatch.
The script's behavior materially diverges from the declared skill purpose: instead of helping generate conventional commits, it implements a generic local datastore with add/list/search/export operations and persistent logging. In an agent-skill context, this kind of capability mismatch is dangerous because it can cause users or orchestrators to invoke the tool under false pretenses, leading to unintended data collection, retention, and exposure through export/list/history features.
The inline/help text explicitly presents the tool as a 'Multi-purpose utility tool,' which contradicts the published identity of a Commitizen helper. This inconsistency is a security-relevant transparency failure: in a skill ecosystem, misleading documentation can conceal broader capabilities and make it easier for a repurposed tool to collect or expose data outside user expectations.
The logging helper appends user-influenced command data to a persistent history file without clearly informing the user that inputs are being retained on disk. While not code execution, this creates a privacy and data-handling risk because prompts, identifiers, or sensitive text passed as arguments may be stored and later disclosed via local access or backups.
The add command writes arbitrary user-supplied content directly into a persistent data file without warning, consent, or retention controls. In the context of a purported commit helper, this is unexpected behavior and can lead to inadvertent local storage of sensitive content, especially if users supply commit text, issue references, or other internal project details.
No suspicious patterns detected.