T08 · Insecure Dependencies
- Location
SKILL.md:78- Finding
Unpinned Third-Party CLI Is Downloaded and Executed at Runtime
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill provides Twitter/X lookups, but it also enables broad credential use, mutable CLI execution, and autonomous wallet-funded credit purchases.
Review this carefully before installing. It is not just a Twitter/X lookup helper: it can create and persist a Vincent DATA_SOURCES key, run a mutable npm CLI, make paid API calls, and buy credits through a wallet flow. Only use it with explicit spending controls, a low-balance dedicated wallet if payments are enabled, pinned CLI versions, and clear user approval before any top-up.
SKILL.md:78Unpinned Third-Party CLI Is Downloaded and Executed at Runtime
SKILL.md:183Autonomous Credit Replenishment Grants Financial Privileges Beyond Twitter Data Retrieval
Autonomous wallet-based credit purchasing is a high-risk capability unrelated to the core purpose of searching tweets or viewing profiles. If invoked by an agent without deliberate user approval, it can directly spend funds, and the skill text normalizes this behavior by framing it as routine operational support for data access.
The line explicitly states that credits can be purchased autonomously with no human intervention required, which is inappropriate for a Twitter data access skill. This encourages agents to spend funds without explicit user opt-in, turning a data retrieval tool into a self-funding payment actor.
The auto-replenish example provides concrete instructions for automatically purchasing credits when the balance falls below a threshold. In practice, this creates a ready-made pattern for recurring autonomous spending without explicit transactional consent, which is especially dangerous because the surrounding skill is framed as a simple Twitter lookup capability.
The trigger phrases are broad enough that the skill may activate in ordinary conversation whenever terms like 'twitter' or 'look up user' appear, even when the user has not asked to invoke an external paid integration. In the context of a pay-per-call skill with credential creation and billing features, overbroad activation materially increases the risk of unintended tool use and unexpected charges.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The skill is presented as a Twitter/X data retrieval integration, but it also exposes and documents payment, checkout, and autonomous credit-purchase workflows. That materially expands the skill's authority from read-oriented data access into financial operations, increasing the chance an agent triggers paid actions the user did not expect from a Twitter lookup skill.
The card checkout flow exceeds the justified scope of a Twitter data access skill because it introduces a billing workflow into what users would reasonably expect to be a read-only integration. Even though it returns a URL rather than directly charging a card, it still enables financial workflow initiation and broadens the attack surface for deceptive or unnecessary payment prompts.
The security model states 'No environment variables are required,' yet the declared config path uses ${OPENCLAW_STATE_DIR:-$HOME/.openclaw} for credential storage resolution. While this may be optional rather than mandatory, the documentation actively suggests env vars are irrelevant even though runtime path behavior depends on them when present.
No suspicious patterns detected.