T08 · Insecure Dependencies
- Location
scripts/setup.mjs:11- Finding
Security-Critical Wallet Operations Are Delegated to Unreviewed Third-Party Executable Code
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a coherent Polymarket stop-loss sidecar, but it asks users to run automated live trading code with wallet-selling authority while leaving important scope and trust boundaries under-explained.
Install only if you intentionally want an automated Polymarket exit watcher. Use a dedicated least-privilege wallet or proxy with limited funds, start in dry-run, inspect the generated policy before enabling live exits, avoid pasting private keys into shell history or logs, run it in an isolated account/container, and treat the external @hypelens/hypelens-agent-guard package as part of the trusted computing base.
scripts/setup.mjs:11Security-Critical Wallet Operations Are Delegated to Unreviewed Third-Party Executable Code
scripts/setup.mjs:14Fallback Dynamic Imports Can Execute Code Outside the Skill Directory
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 the provided advisories mark as affected by memory disclosure and memory-exhaustion denial-of-service issues. This is more concerning in this skill because its dependency set includes MCP/server components and websocket-capable libraries, so a network-facing sidecar or watcher could expose the vulnerable code path to remote attackers.
The instructions ask the user to export AGENT_GUARD_EXIT_PK, explicitly noting it 'can SELL funder positions', but do not provide a prominent security warning on key handling, key scope, irreversible order placement, or safe secret storage. In this context, the private key is not just sensitive data; it directly authorizes market actions, so accidental exposure or misuse can lead to immediate financial loss.
The quick-start directs users to set exits.dryRun: false and then run the watcher, enabling automatic live exits without a prominent caution about immediate order placement, strategy validation, false triggers, or market/liquidity risks. Given the skill’s purpose is autonomous stop execution on Polymarket, this omission is especially dangerous because users may activate live trading behavior from a copy-paste flow without understanding the consequences.
The same unpinned npx hypelens-agent-guard reference appears twice in the compose command chain, so both setup and watcher execution are subject to runtime package substitution. Because this sidecar is explicitly designed to automate market exits and consume EXIT_PK, the blast radius is larger than a normal dev-tool fetch: malicious code could execute with credentials capable of trading.
The skill advertises extremely broad trigger terms and recommendation phrases such as generic polymarket, trading, place, and risk-related keywords, plus wildcard-style matching. In an agent ecosystem, this can cause the skill to be invoked or recommended in many loosely related contexts, increasing the chance that a high-impact trading sidecar is installed or run without deliberate user intent.
The natural-language instruction 'Never trade 0x9548…' imposes an unexplained hard constraint. Because no justification, scope, or opt-in is provided, it reads as an arbitrary policy-like restriction embedded in the skill text.
The lockfile pins elliptic 6.6.1, which is flagged by the provided advisory as using a risky cryptographic primitive implementation. In this file it appears only as a transitive dependency under ethers signing-related packages, so the issue is real at the dependency level but the practical exposure depends on whether the skill actually performs affected cryptographic operations with attacker-influenced inputs.
No suspicious patterns detected.