T09 · Insecure Skill Coding Practices
- Location
scripts/generate_lego_build_plan.py:67- Finding
API Credential Transmitted in URL Query String
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill matches its build-plan purpose, but it automatically uses shared credentials and handles user API keys in a risky way.
Review before installing. Use only non-sensitive prompts and reference URLs, prefer setting your own API key intentionally, avoid relying on the built-in demo key, and consider running in an isolated environment. Be cautious with the required package installs because they are unpinned and broader than the included scripts appear to need.
scripts/generate_lego_build_plan.py:67API Credential Transmitted in URL Query String
SKILL.md:8Unpinned and Unnecessary Third-Party Dependency Installation
The documentation explicitly tells agents to use a built-in demo API key when the user has not provided credentials. Hardcoded or shared fallback credentials bypass user consent and normal authentication expectations, and they may lead to unauthorized third-party service usage, key abuse, logging under a shared account, or accidental policy violations.
Instructing agents to use a shared demo key without explicit user opt-in encourages silent use of third-party credentials and weakens accountability. In this skill's context, which performs hosted API calls for build-plan generation, that behavior is especially risky because it normalizes unauthorized network access and can mask who authorized the external request.
The skill declares environment-variable and network-dependent behavior but does not define any explicit tool scope or allowed-tools boundary. That omission can cause an agent runtime to grant broader-than-necessary execution/network capability, increasing the chance of unintended outbound requests or secret exposure during skill use.
The script contains a hard-coded fallback API key and automatically uses it when the expected environment variable is absent. This exposes embedded third-party credentials/capacity to any user of the script, enabling unauthorized consumption of the remote service, potential quota exhaustion, and loss of control over who can invoke the external agent under that key.
The script sends the user-provided prompt and reference image URLs to a remote third-party endpoint, but the only console messaging concerns API key setup and cost, not data disclosure. Users may reasonably assume this is a local build-plan generator and unintentionally transmit sensitive prompts, proprietary designs, or internal image URLs to an external service without informed consent.
The script transmits user-supplied prompts and reference image URLs to a third-party remote endpoint, but it does not present a clear just-in-time disclosure or confirmation at the point where potentially sensitive content is sent. In this skill context, users may paste proprietary designs, internal project ideas, or private image URLs, so silent transmission to an external service creates a real privacy and data-handling risk even if the behavior is functionally intended.
The script embeds a hardcoded demo API key and automatically falls back to it when no user-provided credential is configured. Hardcoded shared credentials are unsafe because they can be extracted, reused by anyone with access to the code, and may unintentionally authorize remote requests under a common account, creating abuse, billing, attribution, or service-access risks.
The script transmits user-supplied prompts and reference image URLs to a third-party remote endpoint without an explicit user-facing notice or confirmation at the point of transmission. Because prompts and image references may contain proprietary, private, or internal project information, this can cause unintended data disclosure to an external service.
Detected: suspicious.env_credential_access