T09 · Insecure Skill Coding Practices
- Location
SKILL.md:127- Finding
Hardcoded Weak Default MySQL Root Password
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 127
Vulnerability Type: Hardcoded privileged database credential
Risk Level: MediumVulnerable Code Snippet:
markdown | `MYSQL_ROOT_PASS` | `secret` | mysql-manager, worktree-manager |Technical Analysis
The skill documentation defines
secretas the default value ofMYSQL_ROOT_PASS. This is a predictable, publicly documented credential for the privileged MySQL root account. If the referenced manager scripts use this default without requiring an override, any party able to reach the MySQL service can attempt authentication with a known password.The actual manager scripts are not included in the audited package, so use of this value at runtime and external service exposure cannot be independently verified. Nevertheless, publishing a fixed weak default for a privileged account creates an unsafe configuration that may be deployed unchanged.
Attack Path
- A user starts MySQL through the documented manager workflow without overriding
MYSQL_ROOT_PASS. - The manager configures the MySQL root account with the documented default value,
secret. - An attacker obtains network access to the MySQL service, such as through an exposed port or access to the shared Docker network.
- The attacker authenticates to MySQL using the root username and the known default password.
- The attacker exercises database-administration capabilities over databases accessible to that account.
This path depends on the absent manager implementation honoring the documented default and on the attacker having network reachability to MySQL.
Impact Assessment
Successful exploitation could grant privileged MySQL access, potentially allowing the attacker to read, alter, create, or delete development databases and database accounts. The attacker could disclose sensitive development data, corrupt application state, or destroy the designated so ...[truncated 153 chars]
- A user starts MySQL through the documented manager workflow without overriding
- Remediation
View remediation
Remediation Suggestions
- Remove the fixed default and require
MYSQL_ROOT_PASSto be explicitly configured. - Generate a cryptographically random, unique password during initial setup.
- Store the credential in a protected secret manager or a permissions-restricted environment file that is excluded from version control.
- Make startup fail securely when the variable is absent, empty, or equal to a known placeholder.
- Avoid passing the password through command-line arguments, where process listings may expose it.
- Restrict MySQL to the required internal Docker network and avoid publishing its port to untrusted interfaces.
- Prefer a dedicated, least-privileged application account instead of using the MySQL root account for routine operations.
- Rotate any environment still using the documented
secretvalue and review database logs for unauthorized authentication.
- Remove the fixed default and require
