T08 · Insecure Dependencies
- Location
SKILL.md:39- Finding
Unpinned Third-Party Package Is Installed Globally
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Discord management skill is mostly coherent, but it asks for high-impact Discord control while under-scoping token handling, installation safety, and persistent persona instructions.
Install only if you trust the npm package publisher and are comfortable granting a bot broad Discord authority. Use a least-privileged bot token, avoid pasting the token into command lines or chats, review ~/.discli/.env and ~/.discli/SOUL.md, and require explicit human approval for destructive or public Discord actions.
SKILL.md:39Unpinned Third-Party Package Is Installed Globally
SKILL.md:70Discord Bot Token Is Passed Through a Command-Line Argument
SKILL.md:158Persistent Persona File Is Trusted as Future Agent Instructions
The skill explicitly instructs use of a Discord bot token via environment variable and discli init --token <token>, and later states config is stored in ~/.discli/ with the token in .env, but it does not warn that this is a sensitive secret that must not be echoed, logged, pasted into chats, or exposed in shell history. In an agent context, missing credential-handling guidance increases the chance of accidental secret disclosure or insecure local storage practices.
The skill directs the agent to read and obey ~/.discli/SOUL.md for all bot interactions and to generate one if absent, effectively importing untrusted local-file instructions into future behavior without explicit user approval. This creates a prompt-injection and policy-drift risk, because a local persona file could override user intent, induce unsafe messaging behavior, or cause the agent to persist attacker-controlled instructions.
The file instructs the skill to always use a specific language/style variant: "lowercase casual" with gen-z texting conventions. This is a natural-language policy concern because it imposes a communication style by default rather than offering the user a choice or documenting a justified constraint.
No suspicious patterns detected.