T09 · Insecure Skill Coding Practices
- Location
WORKFLOW.md:22- Finding
Insufficiently protected local credential materialization and persistent secret-manager access
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent for setting up a Cloudflare tunnel, but it asks users to handle persistent credentials and account changes without enough safety controls.
Review this skill before installing. Use a narrowly scoped Cloudflare API token and a dedicated 1Password service account, avoid broad vault write access, store any runtime env file with owner-only permissions outside source control and backups, rotate/delete tokens when no longer needed, and require confirmation before DNS, tunnel, systemd, or 1Password changes.
WORKFLOW.md:22Insufficiently protected local credential materialization and persistent secret-manager access
WORKFLOW.md:28Unnecessary write access to the 1Password credential item
The skill explicitly instructs operators to write the runtime Cloudflare tunnel token to a local environment file, but it does not require secure storage controls, restrictive file permissions, lifecycle limits, or cleanup guidance. A locally persisted tunnel token can be exposed through backups, shell access, logs, accidental commits, or weak filesystem permissions, enabling unauthorized tunnel use or service impersonation.
The workflow explicitly instructs fetching a tunnel runtime token and writing it to a local env file, but it provides no warning or controls around file permissions, storage location, rotation, cleanup, or exclusion from logs and version control. In a skill specifically handling infrastructure access and secrets, this omission creates a realistic credential exposure path if the env file is world-readable, persisted unnecessarily, or accidentally committed.
The packaging rule says that if the audience is mixed, the docs must be bilingual. This is a natural-language locale policy constraint rather than an offered choice, and no opt-in mechanism or justification is provided in the file.