T09 · Insecure Skill Coding Practices
- Location
script/configure-echotik-auth.mjs:49- Finding
EchoTik Credentials Are Entered Visibly and Persisted in Plaintext
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill fits its EchoTik API research purpose, but its setup stores EchoTik credentials persistently in a shell profile as plaintext.
Review the setup behavior before installing. Use this skill only if you are comfortable with EchoTik API calls being made from your account, and avoid storing the password in a shell profile or passing it with --password unless you accept the local exposure risk. Prefer session-only environment variables or a secret manager, and rotate credentials if they have already been stored in dotfiles or logs.
script/configure-echotik-auth.mjs:49EchoTik Credentials Are Entered Visibly and Persisted in Plaintext
These rules prescribe that the language parameter must follow the session language, but only permit en-US for English and zh-CN for Chinese. This is a natural-language locale policy constraint that can exclude or override users in other languages without explicit opt-in or a documented justification for limiting supported locales.
The playbook activates on broad phrases like requests for 'a report,' 'a workflow recommendation,' 'a multi-step analysis,' or any 'business-facing answer,' which are common across many unrelated user tasks. In an agent setting, this can cause over-triggering of the skill, routing general requests into authenticated EchoTik workflows and increasing the chance of unnecessary external API access or unintended data handling.
The document states that seller category resolution uses fixed en-US/zh-CN language rules, but it does not indicate that the user can choose their preferred language or that the restriction is required for a documented region-specific purpose. This is a natural-language locale policy constraint that may force behavior based on language without opt-in.
The script collects EchoTik credentials and persists them directly into the user's shell profile as plaintext environment variable exports. This creates long-lived credential exposure to any local process, backup system, shell-history-adjacent inspection, or accidental sharing of dotfiles, which is a real security weakness even if done for convenience rather than with malicious intent.
When credentials are supplied via CLI arguments or interactive input, the script writes them to the shell profile without a clear upfront disclosure that they will be stored persistently in plaintext. Users may unknowingly expose sensitive credentials in dotfiles, backups, or account migrations, and CLI-supplied secrets may already have additional exposure through process listings or shell history depending on how the command is invoked.
This code reads credentials from environment variables, builds a Basic Authorization header, and sends it in a network request. The script has no confirmation prompt, no user-facing notice before transmission, and no inline comment or docstring disclosing that credentials and request data will be sent to a remote service.
Detected: suspicious.env_credential_access