T09 · Insecure Skill Coding Practices
- Location
trader.py:332- Finding
Minimum Market Volume Safeguard Is Not Enforced
- Content
View full analysis
= MAX_POSITIONS: break side, size, reasoning = compute_signal(m) if not side: print(f" [skip] {reasoning}") continue ok, why = context_ok(client, m.id) if not ok: print(f" [skip] {why}") continue try: r = client.trade( market_id=m.id, side=side, amount=size, source=TRADE_SOURCE, skill_slug=SKILL_SLUG, reasoning=reasoning, ) ``` ### Technical Analysis `SIMMER_MIN_VOLUME` is documented as a minimum market-volume filter and is loaded into `MIN_VOLUME`, but it is only printed in the startup status message. Neither `find_markets()` nor `compute_signal()` nor the final trading loop enforces it. Consequently, a market can reach `client.trade()` solely because its probability, spread, and resolution date pass the implemented checks. The intended liquidity control provides no protection. This is especially dangerous in live mode because low-volume prediction markets can have fragile order books, unreliable displayed prices, high price impact, and elevated manipulation risk. ### Attack Path 1. An attacker creates, promotes, or influences a low-volume market whose question matches ...[truncated 809 chars]- Remediation
View remediation
