T09 · Insecure Skill Coding Practices
- Location
SKILL.md:118- Finding
Plaintext API Key Storage in Project Documentation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 118–125
Vulnerability Type: Plaintext sensitive credential storage
Risk Level: MediumVulnerable Code Snippet
markdown ## API Key Handling Store the BlueColumn API key using the platform's secret store (preferred) or in `TOOLS.md`: ```text ### BlueColumn API Key: bc_live_XXXXXXXXXXXXXXXXXXXXKeys are generated at bluecolumn.ai/dashboard. Never log or expose keys in output.
text ### Technical Analysis The skill permits storing a live BlueColumn API key in `TOOLS.md` as an alternative to using the platform's secret store. A project or workspace file does not provide the confidentiality, access controls, auditability, or automatic redaction normally offered by a dedicated secrets-management facility. Although the displayed key is only a placeholder and no actual credential was found, following this instruction would place a real credential in plaintext. Such a file could be committed to source control, included in backups or diagnostic archives, exposed to other workspace users, or read by agents and tools with access to project files. The warning not to expose keys in output does not mitigate the risk created by plaintext storage. ### Attack Path 1. An operator follows the documented fallback and writes a live BlueColumn API key into `TOOLS.md`. 2. The file is committed, archived, shared, processed by another agent, or accessed by a user or tool with workspace read permissions. 3. The plaintext credential is extracted from the file or its retained history. 4. The attacker submits authenticated requests to BlueColumn using the stolen key. 5. The attacker gains access to the operations and data permitted by that key until it is revoked or rotated. This path requires access to the workspace, repository, backup, diagnostic output, or another location containing the plaintext file. ### Impact Assessment Successful exploitation compromises the confidentiality of the BlueColumn ...[truncated 514 chars]- Remediation
View remediation
Remediation Suggestions
- Remove
TOOLS.mdas an approved credential-storage location. - Require the platform's secret store or an equivalent managed secrets facility.
- Inject the credential at runtime through a protected secret reference rather than writing it into project files.
- Ensure secret-bearing files are excluded from source control, logs, generated output, backups, and diagnostic bundles.
- Grant the API key only the minimum scopes required for audio ingestion and retrieval.
- Use separate credentials for development, testing, and production.
- Enable automated secret scanning and pre-commit checks for BlueColumn key patterns.
- Rotate any credential previously stored in
TOOLS.md, and remove it from repository history and retained artifacts. - Document revocation, rotation, access-audit, and incident-response procedures.
- Remove
