Back to skill

Security audit

Vincent - Trading Engine

Security checks for vulnerabilities and agentic risk

Overview

This skill is openly for automated trading, but it asks agents to run a mutable third-party CLI with wallet-linked authority and broad file access, which warrants careful review before use.

Review this skill before installing. Use only with a revocable, least-privilege trading key, strict server-side trade limits, and explicit approval thresholds. Prefer a pinned, vetted `@vincentai/cli` version or preinstalled binary, and avoid granting broad filesystem access unless the runtime can confine it to the required wallet reference and working directory.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T08 · Insecure Dependencies

Error
Location
SKILL.md:8
Finding

Mutable Third-Party CLI Is Downloaded and Executed Without Version or Integrity Pinning

Content
View full analysis
\ --name "BTC Momentum" \ ``` ### Technical Analysis The Skill authorizes execution of the third-party `@vincentai/cli` npm package and consistently instructs the agent to invoke its mutable `latest` release. The project contains no pinned package version, lockfile, package integrity hash, signature-verification procedure, or local implementation that would allow the executed payload to be fully audited. When the package is not already available locally, `npx` can retrieve it and its transitive dependencies from the npm registry and immediately execute them. The effective code can therefore change after this Skill has been reviewed. The wildcard in `Bash(npx:@vincentai/cli*)` also permits every subcommand exposed by the package rather than limiting execution to the minimum set of audited trading-engine operations. This is particularly sensitive because the CLI is used in a context involving wallet authorization, automated financial transactions, strategy configuration, and access to local credential-related state. The statements in the documentation that private keys remain on Vincent's servers and that policies are enforced cannot be independently verified from this project because the CLI and backend implementations are not included. ### Attack Path 1. An attacker compromises the npm publisher account, the package release process, a transitive dependency, or another component in the package distribution chain. 2. The attacker publishes a malicious release that becomes the version resolved by `@vincentai/cli@latest`. 3. ...[truncated 1266 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:8
Finding

Wallet Credential Context Is Combined With Unrestricted Filesystem Read and Write Capabilities

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (45)

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
90% confidence
Finding

Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Content

Scanner excerpt · SKILL.md (reported line 49)May include surrounding context.

md
## Security Model

- **LLM cannot bypass policies** — all trades go through the venue's policy-enforced skill (`polymarketSkill.placeBet()` or `hyperliquidSkill.trade()`) which enforces spending limits, approval thresholds, and allowlists
- **Backend-side LLM key** — the OpenRouter API key never leaves the server. Agents and users cannot invoke the LLM directly
- **Credit gating** — no LLM invocation without sufficient credit balance
- **Tool constraints** — the LLM's available tools are controlled by the strategy's `config.tools` settings. If `canTrade: false`, the trade tool is not provided

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill promotes automated trading, stop-loss, take-profit, and trailing-stop execution but does not place a clear upfront warning about financial loss, unintended execution, slippage, or automation errors. In this context, users may be induced to enable autonomous trading without appreciating that monitoring failures, bad thresholds, or model mistakes can still cause real losses despite stated policy controls.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command uses npx @vincentai/cli without pinning an exact package version, so execution may fetch and run whatever version is current at invocation time. In a trading skill with Bash access and wallet-linked credentials, a compromised or malicious package update could directly influence trade execution or exfiltrate sensitive data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The skill instructs the agent to execute an unpinned npx @vincentai/cli command, which introduces supply-chain risk because the resolved package can change over time. Since this skill manages automated trading and interacts with credential material, compromise of the package source could lead to unauthorized trades or credential exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

An unpinned npx package allows arbitrary future code from the npm registry to be executed when the command runs. In the context of financial automation, even a brief compromise window could be used to alter strategy parameters, place trades, or harvest API-linked wallet information.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Because npx @vincentai/cli is not pinned here, the command may execute a newer or tampered package than the author intended. This is particularly dangerous for a skill that can activate automated strategies and issue actions against trading backends.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The command relies on an unversioned npm package at execution time, creating a classic supply-chain execution risk. If the registry package is hijacked or unexpectedly changed, the agent could run attacker-controlled code with access to trading operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This unpinned npx command can resolve to different code over time, undermining reproducibility and trust. Given the autonomous trading context, a malicious update could manipulate positions, disable protections, or siphon usage data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Running an unpinned npm CLI at command time exposes the agent to remote code execution through dependency or publisher compromise. The surrounding skill is especially sensitive because it can pause/resume/archive strategies tied to real financial positions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The skill example executes a package from npm without version pinning, allowing silent drift or malicious replacement. In a trading engine, that can translate into direct financial loss through unauthorized strategy lifecycle changes or malicious trade actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command exposes the agent to execution of mutable third-party code by using npx @vincentai/cli without an exact version. The impact is elevated because the command can duplicate strategies and preserve privileged trading configuration automatically.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Unpinned package execution here allows whatever package version npm resolves at the time of use, which is a supply-chain risk. Since this command views invocation history in a system that records prompts and actions, a compromised CLI might also exfiltrate sensitive logs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Even though this command is read-oriented, using an unpinned npx package still permits arbitrary code execution from a mutable source. A compromised CLI could falsify cost data, steal key identifiers, or prepare later abuse.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This performance query still executes remote package code without version control, which is unsafe in any privileged environment. In a financial setting, tampered output could mislead operators into making risky decisions or hide malicious activity.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The command creates strategies through an unpinned package, which creates direct exposure to malicious package updates. Because this endpoint can define automated monitoring and later trading behavior, compromise at creation time can persist through the strategy lifecycle.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Worker status retrieval still runs mutable npm code because the package is unpinned. Even read-only commands are dangerous in an environment with linked credentials and localhost service access, as the package can execute arbitrary pre/post-install logic.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This rule-creation command uses an unpinned package while configuring automated sell behavior, so a tampered package could alter thresholds or create hidden actions. The impact is substantial because rule execution can materially affect live positions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The HyperLiquid rule creation example also relies on an unpinned npm package, which could be replaced or modified upstream. That creates a direct path from supply-chain compromise to unauthorized derivatives risk management actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Creating take-profit rules through an unpinned package allows upstream package compromise to influence when and how positions are exited. In automated trading, small parameter changes can produce immediate financial consequences.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command configures HyperLiquid take-profit behavior while executing a mutable npm package. The combination of derivatives trading and remote package resolution materially increases risk of account-impacting abuse.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Trailing stop creation via unpinned npx permits arbitrary upstream code execution in a path that directly affects liquidation timing. In volatile markets, manipulated trailing parameters could rapidly lock in losses or prevent intended protection.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The HyperLiquid trailing stop command carries the same supply-chain risk through an unpinned npm resolution path. Because it targets leveraged products, unauthorized changes can have amplified financial effects.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Listing rules is a read operation, but the unpinned package still grants arbitrary code execution during invocation. In context, the CLI may access key IDs and local service endpoints that an attacker-controlled package could abuse.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Filtering rule listings through an unpinned package still exposes the host to mutable third-party code. A malicious package could conceal rules, misreport status, or gather credential-related metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Updating a rule through an unpinned CLI package creates a direct route for unauthorized modification of protective price thresholds. In a live trading system, compromised rule updates can immediately increase exposure or defeat risk controls.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.