T09 · Insecure Skill Coding Practices
- Location
SKILL.md:50- Finding
Postiz API Credential Exposure Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is not deceptive, but it can post or schedule content across connected social accounts through Postiz with broad scope and weak approval and credential-handling guidance.
Review this skill carefully before installing. Use a dedicated least-privilege Postiz API key, avoid putting the key directly in visible command lines, and require explicit confirmation of the exact platforms, accounts, media, caption, and timing before any live post or scheduled post. Prefer draft-only operation until you have verified the generated content and destinations.
SKILL.md:50Postiz API Credential Exposure Through Command-Line Arguments
The skill is designed to publish content across multiple connected social media accounts through a third-party API, but it does not warn about the privacy, reputational, and account-security risks of sending generated media and captions to an external service. In this context, omission of those warnings is meaningful because the skill encourages broad cross-posting and scheduling across 'any platform,' increasing the blast radius of mistakes, unauthorized posts, or sensitive-content disclosure.
Referencing a specific third-party API endpoint is not inherently unsafe, but here it is part of an operational workflow whose purpose is to transmit user-generated content and perform actions on external social accounts. In the context of an automation skill that can target many platforms, this external dependency materially increases the risk of unintended disclosure, unwanted posting, and account-impacting actions.
Postiz acts as the universal publishing layer. One API handles all connected platforms.
### Configuration
- **API URL**: `https://api.postiz.com/public/v1`
- **Auth Header**: `Authorization: <API_KEY>` (No Bearer prefix).
- **Media Upload**: `POST /upload` first to get `id` and `path`.
- **Posting Method**: Use `UPLOAD` (Draft) for multi-image content. `DIRECT_POST` works for single-image/text posts.
The skill includes concrete commands for uploading media, creating posts, and enumerating connected integrations against an external API using an authorization key. This creates a real external-transmission risk because user content and account linkage data may be transmitted to a third party, and the integration-listing capability can expose all connected publishing destinations if misused or invoked without sufficient user awareness.
- Settings level: Platform-specific settings (e.g., `__type: "tiktok"`, `__type: "instagram"`, etc.).
### Technical Specs
- **Upload Media**: `curl -X POST {API_URL}/upload -H "Authorization: {KEY}" -F "file=@path/to/file"`
- **Create Post**: `curl -X POST {API_URL}/posts -H "Authorization: {KEY}" -H "Content-Type: application/json" -d '{...}'`
- **List Integrations**: `curl {API_URL}/integrations -H "Authorization: {KEY}"` — use this to discover connected platforms and their integration IDs.
No suspicious patterns detected.