T09 · Insecure Skill Coding Practices
- Location
SKILL.md:31- Finding
API Key Exposed in Request URLs
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 31–34
Vulnerability Type: API key exposure through URL paths
Risk Level: MediumVulnerable Code
powershell $key = '<API_KEY>' $base = "https://itch.io/api/1/$key" $me = Invoke-RestMethod -Uri "$base/me" -Method Get -TimeoutSec 30 $games = Invoke-RestMethod -Uri "$base/my-games" -Method Get -TimeoutSec 30Technical Analysis
The itch.io API key is interpolated directly into each request URL. Although HTTPS encrypts the request in transit, URLs can be recorded by PowerShell diagnostics, endpoint-monitoring products, HTTP proxies, crash reports, server access logs, or other telemetry.
The destination is the declared itch.io service, and there is no evidence that the key is intentionally transmitted to an unrelated or attacker-controlled endpoint. Nevertheless, placing a reusable credential in a URL unnecessarily expands the number of systems and logs through which the credential may pass.
Attack Path
- The user supplies a valid itch.io API key.
- The Skill incorporates the key into the request URL path.
- A local monitoring product, proxy, diagnostic facility, or server-side access log records the complete URL.
- An attacker with access to that telemetry extracts the API key.
- The attacker reuses the key against itch.io APIs or Butler, subject to the permissions associated with the compromised key.
Impact Assessment
Successful exploitation may disclose itch.io account and game information and may permit unauthorized publishing operations if the key is accepted by Butler for build uploads. The scope is limited to the itch.io permissions and resources accessible through the compromised credential; no operating-system privilege escalation is demonstrated.
- Remediation
View remediation
Remediation Suggestions
- Prefer an officially supported authorization header or another credential mechanism that does not embed secrets in URLs.
- If itch.io requires path-based API keys for these endpoints, explicitly warn users that URLs may be logged.
- Obtain the key from a secure credential source rather than placing it literally in commands or scripts.
- Disable verbose request logging and ensure errors do not print complete request URLs.
- Redact URL path credentials in application, proxy, and endpoint-monitoring logs.
- Recommend immediate credential rotation if a URL containing the key is exposed.
- Limit the key's permissions where itch.io supports scoped credentials.
