T08 · Insecure Dependencies
- Location
scripts/setup.mjs:12- Finding
Security-Critical Third-Party Package Is Downloaded and Executed with Wallet Authority
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a Polymarket stop-loss sidecar, but it asks users to run external trading code with a wallet key that can sell positions and has under-scoped install and launcher risks.
Review carefully before installing. Only use this with an isolated low-value exit wallet, verify the external @hypelens/hypelens-agent-guard package source and lockfile, avoid the Docker/archive snippet until fixed, and do not enable live exits unless you understand that the watcher can automatically sell positions.
scripts/setup.mjs:12Security-Critical Third-Party Package Is Downloaded and Executed with Wallet Authority
scripts/setup.mjs:14Launchers Execute Unverified Fallback Binaries Outside the Skill Directory
NAUTILUS-SIDECAR.md:14Version-Mismatched Archive Extraction and Overbroad Cleanup in Installation Instructions
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 *place* wildcard in recommendsWhen is extremely broad and can match many unrelated conversations containing the word 'place' or similar strings, causing this skill to be recommended in contexts unrelated to Polymarket order placement. Because the skill includes installation and runtime commands for a trading sidecar, accidental activation or recommendation in the wrong context can materially alter agent behavior and increase operational risk.
The lockfile includes ws 8.18.0, which the scanner reports as affected by memory disclosure and memory-exhaustion DoS advisories. Because this skill depends on MCP/Express/network-facing components and websocket libraries are commonly exposed to untrusted remote input, the skill context makes this more dangerous than a dormant library issue: a reachable ws server or client handling attacker-controlled frames could leak memory or be crashed.
The instructions tell the user to export a raw private key in an environment variable for a process that can sell positions, without prominent warnings about key theft, process inspection, shell history, logs, or container exposure. In this skill context the risk is amplified because the sidecar is explicitly designed to execute live market actions, so compromise of that key can translate directly into unauthorized liquidation or fund loss.
The document states that setup can auto-flip exits.dryRun:false and trigger real exit orders on breach, but it does so in promotional language without an explicit high-visibility warning that this enables irreversible live trades. In an automated trading sidecar, silent or automatic transition from dry-run to live execution can cause unintended position closures and financial loss from misconfiguration or misunderstanding.
The manifest frames this skill as a stop-loss / trailing-stop / portfolio-risk sidecar for protective exits. However, this document explicitly describes using the watcher to place protective sells with Zac builder code for 'warm attribution' and fee revenue effects, which is a monetization/attribution capability not necessary to implement risk controls.
This is the same unpinned runtime package execution risk: the documentation tells users to execute a package by name via npx inside the container command without fixing the resolved version. Because the same process also consumes AGENT_GUARD_EXIT_PK, successful package substitution or compromise could directly lead to unauthorized trades or key exfiltration.
The manifest description stuffs a very large set of generic trading and Polymarket-related keywords into activation metadata, which can cause the skill to be suggested or auto-matched in conversations far beyond the narrow use case of post-trade risk management. In an agent ecosystem, overbroad routing increases the chance this skill is invoked in unintended contexts, leading users or other skills toward installation/execution steps they did not explicitly request.
The manifest describes this skill as a Polymarket risk/stop-loss sidecar, but this file's documented and actual behavior is to locate and launch '@hypelens/hypelens-agent-guard' / 'agent-guard-mcp'. That is a semantic mismatch at the skill-description level because the code is bootstrapping a different branded capability than the manifest presents.
The stated purpose is a post-trade risk/exits companion, but these lines recommend routing new entries through other place skills to maximize attribution and fee outcomes. That guidance introduces a placement/entry-optimization capability outside the justified scope of a risk-only sidecar.
The lockfile pins elliptic 6.6.1, which is flagged by the scanner for a known cryptographic implementation weakness. In this file it appears only as a transitive dependency of ethers signing components, so there is no direct evidence of exploit code or malicious use, but shipping a version with a published advisory is still a real supply-chain risk if the affected code path is exercised.
The header comment says the script starts a pinned local dependency, but on failure it silently falls back to ../../bin/agent-guard-mcp.js, which may not be version-pinned or integrity-verified. In a security-sensitive risk/stop-loss sidecar, this increases the chance of loading a modified local file from the repository tree, enabling unexpected or malicious code execution if that path is tampered with.
No suspicious patterns detected.