T07 · Tool Hijacking and Spoofing
- Location
scripts/setup.mjs:10- Finding
Executable fallback paths escape the Skill trust boundary
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a real Polymarket stop-loss sidecar, but it asks users to run live trading automation with signing-key access while relying on under-scoped install and execution paths.
Review this carefully before installing. Use only a dedicated, low-balance wallet, keep the watcher in dry-run until verified, avoid shell/container environment variables for private keys where possible, prefer lockfile-based installs over direct npx or runtime npm install, and confirm whether builder attribution is acceptable or configurable before enabling live exits.
scripts/setup.mjs:10Executable fallback paths escape the Skill trust boundary
NAUTILUS-SIDECAR.md:5Documented workflows download and execute third-party npm code outside the committed lockfile
NAUTILUS-SIDECAR.md:5Transaction-authorizing private key is exposed through shell and container environment variables
NAUTILUS-SIDECAR.md:21Protective trades include unrelated third-party builder attribution
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.
mkdir -p pm-stops-sidecar && cd pm-stops-sidecar
npm pack @hypelens/hypelens-agent-guard@0.1.17 && tar -xzf hypelens-hypelens-agent-guard-0.1.15.tgz
cp -r package/compose/* . && rm -rf package *.tgz
export FUNDER=0xYourFunder EXIT_PK=0xYourExitKey
docker compose up -d --build
The lockfile includes ws 8.18.0, which is flagged for uninitialized memory disclosure and memory-exhaustion denial of service. This is a true dependency risk because package-lock.json determines the installed version, and this skill’s sidecar/MCP/networked architecture increases exposure if any component opens WebSocket connections or accepts untrusted peer traffic. For an always-on trading/risk sidecar, DoS can directly disable stop-loss or exit automation, making operational impact materially higher.
The documentation tells users to run setup and watcher commands and explicitly notes a live mode using AGENT_GUARD_EXIT_PK with exits.dryRun:false, but it does not include strong warnings about real-money trading, key handling, environment isolation, or dry-run verification. In the context of a Polymarket stop-loss sidecar, these commands can directly enable automated exit behavior, so unclear guidance can lead to unauthorized or unintended live trades and private key exposure.
The documentation tells users to export AGENT_GUARD_EXIT_PK=0xYourExitKey and notes that it 'can SELL funder positions', but it does not provide a prominent credential-handling warning or emphasize that this enables real market actions. Exposing private keys via shell environment variables and encouraging immediate activation of live exits materially increases the chance of secret leakage, accidental live trading, and irreversible asset loss.
This is the same unpinned npx hypelens-agent-guard usage in the Docker compose command path, so the runtime may fetch and execute an unintended version. Because the sidecar is explicitly configured with AGENT_GUARD_EXIT_PK, the blast radius is larger than normal documentation drift: a malicious or compromised package could act with trading authority.
The compose example launches an automated watcher that can execute protective trades using AGENT_GUARD_EXIT_PK, but the example lacks a clear live-trading warning at the point of use. In this context, users may treat the snippet as routine infrastructure setup and unintentionally authorize a container to perform irreversible market actions with real funds.
The skill advertises very broad activation terms and even includes a wildcard-style trigger (*place*), which can cause the agent to invoke this skill in contexts that only loosely match trading or order-placement workflows. In a trading environment, unintended invocation is risky because it may lead to unnecessary installation/setup steps, watcher startup, or risk-management actions being suggested or chained at the wrong time.
The lockfile pins elliptic to 6.6.1, which is reported as having a risky cryptographic implementation. Even though this file is only dependency metadata, it confirms the vulnerable package would be installed transitively, so the issue is real at the supply-chain level. In this skill’s context, crypto libraries are relevant because dependencies like ethers and wallet functionality may process signing material, making flawed crypto primitives more concerning than in a non-crypto application.
No suspicious patterns detected.