T08 · Insecure Dependencies
- Location
clawhub.json:6- Finding
Unpinned Privileged Third-Party Dependency
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a disclosed Polymarket trading bot, but some promised live-trading safeguards are not actually enforced.
Review this before enabling live trading. It appears coherent and not malicious, but users should treat SIMMER_API_KEY as a high-value credential, pin or verify simmer-sdk, start in paper mode, and not rely on the documented volume or concurrent-position safeguards until those checks are fixed or enforced by the trading platform/account.
clawhub.json:6Unpinned Privileged Third-Party Dependency
trader.py:430Declared Minimum Market Volume Safeguard Is Not Enforced
trader.py:492Concurrent Position Limit Resets on Every Invocation
The skill declares access to a high-value credential (SIMMER_API_KEY) and implies use of environment-backed execution, but it does not define any explicit tool scope such as permissions or allowed-tools. In an agent setting, missing scope boundaries can let the runtime grant broader capabilities than intended, increasing the risk of unintended credential access or misuse during trading operations.
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.
Polymarket prices each prop in isolation via its own order book. There is no mechanism to enforce cross-prop consistency the way a professional sportsbook would. This creates systematic mispricings:
1. **Correlated props priced independently** -- Retail traders bet on "Roshan?" without checking what the kills market implies about game action level
2. **Action-score anchor** -- The kills O/U market is the most liquid and best-priced prop; it serves as a reliable anchor for what kind of game to expect
3. **Thin liquidity on exotic props** -- Rampage, ultra kill, and daytime markets have much less volume, making them more prone to mispricing
4. **Multi-game series multiply opportunities** -- BO3 matches have separate prop bundles for Game 1, Game 2, and Game 3, tripling the surface area
Dynamic getattr() with a non-literal attribute name can access arbitrary object attributes, potentially bypassing access controls.
if market is not None:
for attr in ("event_slug", "group_slug", "import_source", "event_id"):
val = getattr(market, attr, None)
if val and isinstance(val, str) and len(val) >= 3:
return val.lower().strip()
No suspicious patterns detected.