T09 · Insecure Skill Coding Practices
- Location
storage/user_config.json:1- Finding
Live API Credential and User Identifier Bundled in the Project
- Content
View full analysis
Vulnerability Details
File Location:
storage/user_config.json:1-5
Vulnerability Type: Hardcoded secret and sensitive identifier exposure
Risk Level: HighVulnerable Code
json { "918573385": { "api_key": "[REDACTED_EXPOSED_API_KEY]" } }The API key value has been redacted from this report to avoid further credential disclosure. The audited file contains the complete plaintext value.
Technical Analysis
The distributed project contains a plaintext football-data.org API key associated with a user identifier. Anyone who can download the project, inspect its source archive, access a repository clone, or read a backup can recover the credential without invoking the Skill.
The application sends this credential as an
X-Auth-Tokenheader tohttps://api.football-data.org/v4. Although that transmission is necessary for the declared club lookup functionality and uses HTTPS, embedding a live credential in the distributable package is unnecessary and violates secret-management best practices.This finding does not provide operating-system privileges. Its scope is the external API account and the exposed user identifier.
Attack Path
- An attacker obtains the Skill package, repository contents, build artifact, or a backup containing it.
- The attacker opens
storage/user_config.json. - The attacker extracts the plaintext API key and associated user identifier.
- The attacker submits requests to football-data.org with the stolen key in the
X-Auth-Tokenheader. - The requests consume the victim's API quota and are attributed to the victim's account until the credential is revoked.
No code execution or local privilege escalation is required.
Impact Assessment
An attacker may:
- Make unauthorized requests under the affected football-data.org account.
- Exhaust API quotas or trigger service rate limits.
- Cause account abuse or operational disruption.
- C ...[truncated 308 chars]
- Remediation
View remediation
Remediation Suggestions
- Revoke and rotate the exposed football-data.org API key immediately.
- Remove
storage/user_config.jsonfrom all release packages and repository history. - Add the runtime credential file to
.gitignoreand packaging exclusion rules. - Distribute only a secret-free example such as
user_config.example.json. - Store production credentials in an OS keyring, managed secret store, or deployment-specific credential service.
- Review API account logs and quota usage for unauthorized activity.
- Add automated secret scanning to commits, pull requests, and release builds.
- Avoid including persistent user identifiers in distributable artifacts.
