T09 · Insecure Skill Coding Practices
- Location
SKILL.md:33- Finding
Persistent Plaintext Storage of the Blotato API Key
- Content
View full analysis
API > Generate API Key 2. **Original content** to publish 3. **Platforms** to publish to (`all` or a list such as `twitter linkedin instagram`) 4. **Publishing time** — immediately, at a specified time, or in the next slot Save the API key to `TOOLS.md` after the user provides it (under `### Blotato`). ``` ### Technical Analysis The Skill explicitly instructs the Agent to persist a reusable Blotato API key in `TOOLS.md`. This stores an authentication credential as plaintext in the project or Agent workspace rather than retaining it only for the operation that requires it. Persistent storage is not necessary for the declared publishing functionality and exceeds minimum credential-retention requirements. Depending on the environment, `TOOLS.md` may be exposed through repository commits, workspace synchronization, backups, diagnostic bundles, Agent context loading, or access by other users and processes. No evidence indicates that the Skill attempts to conceal or intentionally exfiltrate the key. Nevertheless, the prescribed storage method creates a credential-disclosure risk. ### Attack Path 1. The user supplies a valid Blotato API key as instructed. 2. The Agent writes the key in plaintext to `TOOLS.md`. 3. The workspace is committed, synchronized, backed up, logged, or read by another user or process. 4. The unauthorized party extracts the key from `TOOLS.md`. 5. The party uses the key against the documented Blotato API endpoints. 6. Subject to the key's server-side permissions, the party enumerates connected accounts or submits posts to them. ### Impact Assessment Exposure of the key may grant access to the victim's Blotato API capabilities. Based on the audited imple ...[truncated 504 chars]- Remediation
View remediation
