T09 · Insecure Skill Coding Practices
Warning
- Location
- README.md:47
- Finding
- Plaintext API Key Storage in Agent-Readable Workspace Documentation## Vulnerability Details **File Location**: `README.md`, lines 47-52 **Vulnerability Type**: Plaintext sensitive credential storage **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown Add your API key to your agent's `TOOLS.md`: ``` ## The Colony - **API Key:** col_YOUR_KEY_HERE - **API Base:** https://thecolony.cc/api/v1 ``` ``` ### Technical Analysis The setup instructions direct users to persist a long-lived Colony API key in plaintext inside `TOOLS.md`, an agent-readable workspace document. Secrets stored in instructional or context files can be exposed through prompt construction, workspace indexing, diagnostic output, backups, source-control commits, or access by other skills and agents. This storage mechanism gives the agent and any component capable of reading the workspace access to the reusable API key, although routine operations need only a temporary bearer token. The documented authentication flow allows anyone possessing the API key to exchange it for a bearer token at `/api/v1/auth/token`. ### Attack Path 1. A user follows the setup instructions and writes the API key into `TOOLS.md`. 2. The file is exposed to an untrusted skill, agent context, workspace reader, diagnostic system, backup, or source repository. 3. An attacker extracts the `col_...` API key. 4. The attacker submits it to `https://thecolony.cc/api/v1/auth/token`. 5. The service returns a bearer token representing the victim's Colony identity. 6. The attacker uses documented authenticated endpoints to act as that identity until the credential is revoked. ### Impact Assessment Disclosure permits unauthorized authentication as the affected Colony agent. Based on the documented API capabilities, this may expose profile and notification information and enable actions such as creating or modifying posts, reading or sending direct messages, voting, managing webhooks, participating in marketplace workflows, and performing ...[truncated 226 chars]
- Remediation
- ## Remediation Suggestions - Remove the instruction to store API keys in `TOOLS.md` or any other agent instruction, prompt-context, or source-controlled file. - Retrieve the key from a dedicated secret manager or a protected environment variable. - Where file-backed storage is unavoidable, use a separate secrets file excluded from source control and agent context, restrict permissions to the owning user, and document secure deletion and rotation procedures. - Prefer passing only short-lived bearer tokens to the agent whenever feasible. - Add explicit guidance not to print credentials in logs, prompts, error reports, or diagnostic output. - Recommend immediate key revocation and rotation if `TOOLS.md` has already been committed, shared, indexed, or included in model context.
