T09 · Insecure Skill Coding Practices
- Location
docker-compose.yml:7- Finding
Predictable Default MySQL Root Password
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill matches its MySQL-management purpose, but it ships unsafe default root credentials and broad database-changing triggers that could affect shared local data.
Review before installing. Use this only for trusted local development, set MYSQL_ROOT_PASSWORD to a strong non-default value before first start, rotate any existing volume initialized with secret, and avoid sharing the Docker network with untrusted containers. Treat create, dump, and drop operations as real database mutations even though the skill is framed for development use.
docker-compose.yml:7Predictable Default MySQL Root Password
run.sh:58MySQL Root Password Exposed Through Process Arguments
The trigger phrase "drop database" is highly dangerous because it is generic and maps to a destructive operation. A normal conversational request could unintentionally activate this skill and lead to deletion of a database in a shared development environment, even if the script later prompts for confirmation.
Shadow Command Trigger: 'start mysql' conflicts with built-in command 'start'
Shadow Command Trigger: 'stop mysql' conflicts with built-in command 'stop'
"Create database" conflicts with a generic create-style command and is unsafe because it can activate a privileged, state-changing action from an ambiguous natural-language request. In this skill's context, the command affects a shared MySQL container, so accidental dispatch has real operational consequences beyond a simple UX mismatch.
The trigger phrase "create database" is broad enough to match ordinary user requests that are not clearly intended to invoke this specific skill. Because this skill performs state-changing infrastructure actions, accidental activation could create resources or alter a shared local environment without sufficient user intent validation.
The trigger phrase "dump database" is overly generic for a capability that copies database contents between instances. Accidental activation could expose or overwrite data in local development databases, especially in a shared container setup where multiple worktrees or instances rely on the same MySQL service.
Documenting a default root password of "secret" encourages insecure deployments and makes compromise trivial if users retain the default. Although the container is bound to 127.0.0.1, local malware, other local users, or unintended port exposure could leverage predictable credentials to access all databases.
This shell script includes its usage documentation and operational messages in Portuguese only, which imposes a specific language on users without opt-in. The file does not indicate that the skill is intentionally region-specific or provide an alternative language choice, so it conflicts with the language/locale policy criteria.
No suspicious patterns detected.