T09 · Insecure Skill Coding Practices
- Location
scripts/manager.js:507- Finding
Provider-independent credential selection can disclose API keys to the wrong service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is mostly a local token-cost tracker, but its API-key handling can expose credentials in ways users would not expect.
Install only if you are comfortable with a local tool retaining usage metadata and making provider API calls. Do not pass API keys on the command line, avoid running it with unrelated provider keys in the environment, and review or remove any .data/config.json before using balance checks.
scripts/manager.js:507Provider-independent credential selection can disclose API keys to the wrong service
scripts/manager.js:90Mutable local configuration can redirect credential-bearing requests to an arbitrary host
scripts/manager.js:495API keys accepted through command-line arguments can leak through process metadata and shell history
The code substantially matches parts of the description: it does cross-session tracking, usage analytics, and cost-saving recommendations, all stored locally. However, it does not implement several prominent declared capabilities. There is no scheduler, background monitoring, or alerting mechanism. It also does not actually monitor Kimi/OpenAI/Anthropic/Gemini/local models directly; instead, it accepts manually supplied session data and records it generically. So the description overstates the implementation and implies integrations and automation that are not present.
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
Referenced artifact was not completely inspected
node scripts/manager.js report 11000 146 42000 200000 off 9.26 moonshot kimi-k2.5
The skill explicitly supports cross-session recording and local persistence of session-level metadata in a .data directory. Even if the example only shows provider, model, token counts, and cost, session tracking across runs materially increases the risk of context leakage, correlation of user activity, retention of sensitive metadata, and accidental inclusion of richer context in future implementations or operator usage.
# Record session for tracking
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
# Generate reports
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
Referenced artifact was not completely inspected
node scripts/session-tracker.js record <provider> <model> <tokensIn> <tokensOut> <cost> [currency]
No suspicious patterns detected.