T09 · Insecure Skill Coding Practices
- Location
scripts/add_project.py:59- Finding
Unescaped User Input Allows TOML Configuration Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it claims, but it handles bot credentials and live agent access in ways that need careful review before use.
Install only if you are comfortable with the skill editing your live cc-connect config, storing bot credentials there, and restarting the connector. Before using it, avoid pasting secrets into logged commands, redact config output, back up ~/.cc-connect/config.toml, review any generated project block before restart, and do not use QQ wildcard access unless you intentionally want any sender allowed.
scripts/add_project.py:59Unescaped User Input Allows TOML Configuration Injection
SKILL.md:35Bot Credentials Are Exposed Through Command-Line Arguments and Confirmation Output
scripts/add_project.py:88QQ Projects Are Configured with an Unrestricted Sender Allowlist
The skill promises broad lifecycle management, including removal, restart, and multi-agent binding guidance, but the described actionable implementation centers mainly on adding a project. This mismatch can mislead operators into assuming safety checks, restart handling, or deletion logic exist when they do not, causing unsafe manual actions or partial configuration changes.
The skill instructs the agent to read and modify ~/.cc-connect/config.toml but does not declare any explicit tool scope or permissions boundary. That creates an authorization ambiguity where a caller may trigger file access beyond what is transparently advertised, increasing the risk of unintended or overbroad local file modification.
The removal instructions direct deletion of an entire [[projects]] block from a user configuration file without requiring confirmation, preview, or backup. A mistaken match or malformed edit could permanently remove the wrong project configuration and break service behavior.
The restart procedure sends Ctrl-C to the tmux session and relaunches cc-connect without warning that it will interrupt a running service. This can terminate active bot sessions, lose in-flight work, or create operator confusion if invoked unexpectedly during production use.
No suspicious patterns detected.