T09 · Insecure Skill Coding Practices
- Location
SKILL.md:30- Finding
Documentation Recommends Plaintext Credential Storage
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:29-33
Vulnerability Type: Plaintext sensitive-data storage guidance
Risk Level: MediumVulnerable Snippet
markdown **Environment Variables** (store in TOOLS.md or set before running): - `PUBLER_API_KEY` — API key from Publer (Business plan required) - `PUBLER_WORKSPACE_ID` — Your workspace ID - `PUBLER_TIKTOK_ACCOUNT_ID` — TikTok account ID (optional, get via `accounts` command)Technical Analysis
The documentation explicitly recommends storing the Publer API key and workspace identifier in
TOOLS.md. A Markdown documentation file is not a secure credential store. Such files may be committed to source control, copied into backups, shared with collaborators, indexed by development tools, or exposed to agents and processes that can read project documentation.The script uses these values to construct authenticated Publer API requests:
python return { "Authorization": f"Bearer-API {key}", "Publer-Workspace-Id": ws, }Therefore, disclosure of both values may provide authenticated access to the associated Publer workspace, subject to the API key's server-side permissions.
Attack Path
- A user follows the documented recommendation and records
PUBLER_API_KEYandPUBLER_WORKSPACE_IDinTOOLS.md. - The file is committed, archived, shared, indexed, or read by another local tool or user.
- An unauthorized party extracts the API key and workspace identifier.
- The party supplies those credentials in the documented Publer HTTP headers.
- Within the privileges granted to the key, the party can access connected-account information and potentially upload media or submit social-media posts.
Impact Assessment
The exposed credentials could grant access to the associated Publer workspace within the scope of the API key. Based on the project functionality, this may include listing connected social accounts ...[truncated 219 chars]
- A user follows the documented recommendation and records
- Remediation
View remediation
Remediation Suggestions
- Remove the recommendation to store credentials in
TOOLS.mdor any other project documentation. - Require credentials to be injected through process environment variables or a dedicated secrets manager.
- If local secret files are supported, use a clearly named file such as
.env, restrict its permissions, and ensure it is excluded through.gitignore; do not treat this as a substitute for a production secrets manager. - Document procedures for API-key rotation and immediate revocation after suspected disclosure.
- Grant the API key only the minimum Publer privileges required for the intended workflow.
- Add automated secret scanning to version-control and CI workflows.
- Remove the recommendation to store credentials in
