Back to skill

Security audit

Threshold Trader

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent trading skill, but its dry-run and automation behavior can still touch authenticated trading-account state, so users should review it carefully before installing.

Install only if you understand that this is an automated trading template using SIMMER_API_KEY. Use the sim venue first, avoid real-money venues until you have reviewed the code, and treat dry-run as not fully read-only because auto-redemption is not gated by --live. Pin dependencies and avoid running the bundled publish.sh from a repository that may contain private files or credentials.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

T08 · Insecure Dependencies

Warning
Location
clawhub.json:3
Finding

Unpinned Third-Party Packages Create a Supply-Chain Execution Risk

Content
View full analysis
/dev/null || echo '未登录')" echo "" read -p "确认发布? (y/N): " confirm if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then echo "❌ 取消发布" exit 0 fi echo "" echo "🔄 正在发布..." npx clawhub@latest publish . --slug threshold-trader --version "$VERSION" ``` `SKILL.md:32` and `SKILL.md:92`: ```bash npx clawhub@latest install threshold-trader ``` ```markdown - `simmer-sdk` >= 1.0.0 ``` ### Technical Analysis The project installs `simmer-sdk` without an exact version or integrity constraint and repeatedly executes the mutable `latest` release of the ClawHub npm package. Package resolution can therefore produce code different from the version reviewed during this audit. This is particularly sensitive because `simmer-sdk` is initialized with `SIMMER_API_KEY` and performs account balance retrieval, market queries, redemptions, and trade submission. A malicious or compromised future dependency version would execute under the user's local privileges and could receive the trading credential directly. The audit did not establish that the current packages are malicious. The vulnerability is the absence of controls that prevent a compromised, replaced, or unexpectedly changed release from being installed and executed. ### Attack Path 1. An attacker compromises the npm or Python package, its publisher account, or an upstream build pipeline. 2. The attacker publishes a ma ...[truncated 964 chars]
Remediation
View remediation
... ``` 4. Use npm lockfiles and integrity metadata where the publishing workflow permits. 5. Review package publisher ownership, signatures, release provenance, and repository tags before upgrading. 6. Test dependency upgrades in an isolated environment before exposing trading credentials. 7. Scope `SIMMER_API_KEY` to only the venues and operations required by this Skill, and rotate it if a dependency compromise is suspected. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
threshold_trader.py:270
Finding

Dry-Run Mode Still Performs Authenticated Auto-Redemption

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
publish.sh:42
Finding

Publishing Script Automatically Commits and Pushes the Entire Working Tree

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (35)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file contains user-facing operational instructions only in Chinese, including all headings and guidance. Under the policy rule for language or locale constraints, forcing a single language without user opt-in or documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The guide repeatedly instructs users to run npx clawhub@latest ..., which pulls and executes whatever code is currently published under that package name at execution time. In a publishing workflow that likely runs with authenticated ClawHub/GitHub context, this creates a supply-chain risk where a compromised or malicious package update could execute arbitrary code and exfiltrate credentials or modify local files.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Using npx clawhub@latest whoami executes the newest package version without review, creating a time-of-use trust problem. If the upstream package or dependency chain is compromised, the command can run arbitrary code on the operator's machine and access local tokens or environment data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The publish command with @latest combines remote code execution risk with a sensitive operation that may use authenticated publishing credentials. A malicious update could tamper with release contents, steal tokens, or publish unintended artifacts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The guide recommends npx clawhub@latest list, which still executes unpinned remote code even though the action appears low risk. Because npx runs package lifecycle code locally, compromise of the package or its dependencies can lead to arbitrary command execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The search verification step invokes npx clawhub@latest search threshold, again trusting the current upstream package at runtime. Even read-like commands are dangerous because package execution happens before the command logic and may expose the local environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The installation verification step uses an unpinned latest package, allowing the package publisher or a compromised registry path to change behavior between runs. This is especially risky in operator guides because readers may assume the documentation is safe and execute commands verbatim.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The login instruction npx clawhub@latest login is particularly sensitive because it may handle authentication flows and tokens. Executing the latest unreviewed package in that context could capture credentials or alter authentication endpoints.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This publish ... --bump patch example performs a privileged release action through an unpinned package fetched at runtime. If exploited, an attacker could gain code execution, tamper with publishing behavior, or exfiltrate release credentials and metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The post-release install verification uses @latest, preserving the same supply-chain execution risk throughout the workflow. Because the document normalizes repeated use of unpinned commands, it increases the chance that users will execute untrusted code many times.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The quick-reference section again instructs users to run the latest package for publishing, reinforcing an insecure pattern in the most copy-pasted portion of the document. Since release operations are high-trust actions, arbitrary code execution here could have direct downstream impact on distributed artifacts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The repeated publish command in the quick-reference continues to expose operators to registry/package compromise at runtime. In context, the document is a release guide, so operators are likely to have elevated trust and active credentials when running it, increasing risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The --bump patch quick-reference command still executes unpinned remote code, which is unsafe regardless of the CLI subcommand. Attackers exploiting the package distribution path could trigger arbitrary local actions during an otherwise routine version bump.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Although whoami appears harmless, it still requires executing the fetched package and therefore carries supply-chain risk. The impact is somewhat lower than publishing/login examples, but compromise could still expose environment data or establish persistence locally.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The search example repeats the same unsafe fetch-and-execute behavior with an unpinned package. While the command itself is lower privilege, the execution model still allows arbitrary code to run on the host before performing the search.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The install-test command again uses @latest, exposing users to package substitution or malicious updates at the exact moment they are following official workflow instructions. If exploited, this could compromise developer systems and any secrets accessible during the session.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx clawhub@latest, which fetches and executes the latest package version at install time rather than a reviewed, fixed version. If the upstream package, dependency chain, or publisher account is compromised, users could execute arbitrary code during publish/install workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command again uses npx clawhub@latest, causing execution of whatever package version is current at the time the user runs it. Because npx executes downloaded code, this creates a supply-chain execution risk for anyone following the publishing instructions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The install verification step tells users to run npx clawhub@latest install, which implicitly trusts and executes the newest published CLI version. In the context of a trading-related skill, that can expose developer machines, tokens, and package contents to malicious code if the package supply chain is compromised.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · README-PUBLISH.md (reported line 57)May include surrounding context.

md
Within 6 hours of publishing to ClawHub, your skill will automatically appear at:
- https://simmer.markets/skills

No approval process needed — the sync job detects `simmer-sdk` in dependencies.

## Updating

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This republish command repeats the unsafe npx ...@latest pattern, preserving a supply-chain code execution risk in routine maintenance actions. Repeated operational use increases exposure because users may run the command frequently over the lifecycle of the skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README describes automated execution every 15 minutes and a --live mode for real trading, but it does not give a clear, prominent warning that enabling live mode can place real-money trades and incur financial loss. In a trading skill, this omission materially increases the chance of unsafe user operation or accidental activation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The final quick command prominently recommends npx clawhub@latest, increasing the chance that users copy-paste and execute unpinned code without scrutiny. The prominent placement makes exploitation more likely if the package distribution channel is ever compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The installation command uses npx clawhub@latest, which fetches and executes the latest published package version at runtime rather than a pinned, reviewed release. This creates a supply-chain risk: if the upstream package is compromised or a breaking/malicious version is published, users installing the skill could execute untrusted code on their machine.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest configures unattended execution every 15 minutes via cron while the skill is clearly capable of trading, including on a real-money venue ('polymarket'). Automated invocation without additional trigger constraints, approval gates, or environment-based safeguards increases the risk of unintended or repeated financial actions if the skill logic is wrong, manipulated, or misconfigured.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.