T09 · Insecure Skill Coding Practices
- Location
scripts/save_url_params.py:21- Finding
SQL Injection Through Attacker-Controlled URL Parameter Names
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears purpose-aligned, but it writes URL data to MySQL using unsafe dynamic SQL and overly privileged default credentials.
Review before installing or using. Only run it against a dedicated MySQL database with a least-privileged account, remove root/root defaults, avoid sensitive URLs, and require parameter-name validation or a fixed schema before processing untrusted input.
scripts/save_url_params.py:21SQL Injection Through Attacker-Controlled URL Parameter Names
scripts/save_url_params.py:6Predictable Hardcoded Default Database Credentials
scripts/save_url_params.py:7Database Operations Use an Excessively Privileged Root Account by Default
scripts/save_url_params.py:64Plaintext Disclosure of Sensitive URL Parameter Values Through Standard Output
The skill advertises code capabilities that can access environment data and use the network, but it does not declare any explicit tool scope or permissions boundaries. That creates unnecessary ambiguity about what the skill may access or transmit at runtime, increasing the risk of over-privileged execution, secret exposure from environment variables, or unexpected outbound connections.
The skill description says it stores URL parameters in MySQL and may auto-create a table, but it does not prominently warn users that untrusted URL-derived data will be persisted to a database schema that changes dynamically. In this context, that is dangerous because query parameters often contain tokens, personal data, or other sensitive values, and automatic table creation or dynamic column mapping can expand the attack surface and lead to unsafe data handling.
The manifest says this skill extracts URL parameters and saves them into MySQL, but the code additionally pulls connection details and credentials from process environment variables. Accessing environment-held secrets is a broader capability than the stated task itself and is not declared in the skill description.
The script stores arbitrary URL query parameters directly into a database, and query strings often contain sensitive data such as tokens, emails, session IDs, or API keys. Persisting this data without filtering, consent, minimization, or warnings increases the risk of long-term exposure through database compromise, logs, backups, or unintended internal access.
The script reads database connection settings, including the password, from environment variables. There is no user-facing notice or explanatory documentation in the file indicating that sensitive environment-based credentials are required and will be accessed.
No suspicious patterns detected.