T09 · Insecure Skill Coding Practices
- Location
docker-compose.yml:8- Finding
Predictable Default MySQL Root Credential
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is transparent about running phpMyAdmin locally, but it should be reviewed because it enables database admin access with a predictable default root password.
Install only for local development. Before starting it, set a strong unique MYSQL_ROOT_PASSWORD and confirm the connected MySQL container is not using secret. Keep the phpMyAdmin port bound to localhost, restrict access to the shared Docker network, and stop the container when it is not needed.
docker-compose.yml:8Predictable Default MySQL Root Credential
The trigger "start phpmyadmin" begins with a common built-in verb and may be parsed or matched in ways that conflict with generic start commands. This can cause the skill to intercept user intent unexpectedly and launch a Dockerized admin interface that exposes database management functionality on the host.
The trigger "stop phpmyadmin" similarly overlaps with generic stop semantics and may capture unrelated user commands. While the impact is lower than unintended startup, accidental shutdown of an admin container can disrupt local workflows or interfere with other dependent development tasks.
The trigger phrases "interface mysql" and "admin mysql" are broad enough that they could be invoked during normal conversation or overlap with unrelated requests about MySQL administration. In an agent that can start or expose local infrastructure, ambiguous activation increases the chance of unintended container actions and unwanted service exposure.
The trigger list includes the Spanish-only phrase "abrir phpmyadmin" alongside English triggers, but the file does not explain language selection or indicate whether multilingual triggering is intentional and user-driven. This can create a locale-policy issue if the skill behavior depends on language choices that are not explicitly offered or documented.
This shell script's documentation and runtime messages are written in Portuguese only, which imposes a specific language on users without any opt-in or alternative. The policy allows locale constraints only when explicitly justified or when users are given a choice, neither of which is present here.
No suspicious patterns detected.