T06 · System Persistence
- Location
references/cron-definitions.md:8- Finding
Persistent Silent Cron Jobs Perform Autonomous Financial Actions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is clearly for MoltMarkets automation, but it sets up persistent, mostly silent agents that can spend funds, create markets, post public comments, and resolve outcomes with limited user control.
Review before installing. This skill can act on your MoltMarkets account repeatedly without per-action confirmation, including spending balance, creating markets, resolving outcomes, and posting comments. Use only with a dedicated low-balance account or scoped token if available, secure the credential file, disable or remove cron jobs when not actively supervising them, and avoid silent mode for state-changing actions.
references/cron-definitions.md:8Persistent Silent Cron Jobs Perform Autonomous Financial Actions
references/cron-definitions.md:57Untrusted Market Comments and Titles Can Influence Privileged Agent Actions
SKILL.md:23Bearer API Credential Is Stored Without Enforced Restrictive Permissions
references/cron-definitions.md:223Current CoinGecko Price Can Be Used as Historical Close Price During Market Resolution
scripts/setup.js:34Malformed HTTPS Hostname Prevents Reliable API Credential Validation
The skill advertises autonomous trading, market creation, and auto-resolution but omits clear user warnings that these actions can spend funds, create financial exposure, and act without per-trade review. In this context, lack of informed consent and guardrails is dangerous because cron-driven automation can repeatedly execute risky actions at scale.
Merely mentioning where to obtain an API key is not harmful by itself, but in context it is part of a workflow that immediately stores and uses powerful credentials for automated financial actions. That makes the credential acquisition guidance security-relevant because it normalizes handling sensitive tokens without accompanying safeguards.
# Create config directory
mkdir -p ~/.config/moltmarkets
# Save your credentials (get API key from moltmarkets.com settings)
cat > ~/.config/moltmarkets/credentials.json << 'EOF'
{
"api_key": "mm_your_api_key_here",
This finding points to direct handling of a credentials file containing an API key. Exposing or mishandling such credentials is dangerous because the same skill is designed to perform authenticated account actions, so compromise can quickly become unauthorized trading or market manipulation.
mkdir -p ~/.config/moltmarkets
# Save your credentials (get API key from moltmarkets.com settings)
cat > ~/.config/moltmarkets/credentials.json << 'EOF'
{
"api_key": "mm_your_api_key_here",
"user_id": "your-user-uuid",
The output rules attempt to suppress intermediate visibility and force silent execution semantics around the spawned task. That pattern reduces oversight and can help conceal unsafe actions, making it easier for prompt-level instructions to bypass user scrutiny during autonomous external operations.
Use POST /markets/{id}/comments endpoint after placing a bet.
**OUTPUT RULES:**
- NO intermediate messages
- NO spawn announcements — work SILENTLY
- ONLY send ONE final report with: position taken (or why skipped), learning context applied, new balance
The skill explicitly instructs use of a local credentials file for automated resolution actions. Direct credential access in prompt instructions expands the blast radius of prompt injection or mis-scoped agent permissions, especially when combined with external POST requests that can alter financial market outcomes.
kind: 'agentTurn',
message: `MARKET AUTO-RESOLUTION — HISTORICAL PRICE LOGIC
**CREDS:** ~/.config/moltmarkets/credentials.json
**API:** https://api.zcombinator.io/molt
**STEP 1: FIND MARKETS TO RESOLVE**
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
const https = require('https');
const MEMORY_DIR = path.join(process.cwd(), 'memory');
const CREDS_PATH = path.join(process.env.HOME, '.config/moltmarkets/credentials.json');
// Ensure memory directory exists
if (!fs.existsSync(MEMORY_DIR)) {
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
const https = require('https');
const MEMORY_DIR = path.join(process.cwd(), 'memory');
const CREDS_PATH = path.join(process.env.HOME, '.config/moltmarkets/credentials.json');
// Ensure memory directory exists
if (!fs.existsSync(MEMORY_DIR)) {
The skill describes capabilities that rely on environment/configured credentials and likely external actions, but it declares no explicit tool scope or permissions boundary. That makes invocation and review less safe because a caller cannot clearly see what resources the skill expects to access or mutate.
The description uses broad activation language such as using the skill whenever setting up, configuring, or replicating an agent architecture. Over-broad triggers increase the chance the skill is invoked in contexts the user did not intend, especially since it performs or enables high-impact trading automation.
The instructions tell users to store a live API key in a plaintext JSON file under ~/.config without warning about local compromise, accidental backup/sync leakage, or file permission hardening. Because the key appears to authorize trading and account actions, theft could lead directly to unauthorized market actions and financial loss.
The skill instructs the user to create persistent local configuration storage for sensitive account material. Persistent session/state storage increases the attack surface because secrets may remain available long after use, be copied into backups, or be accessed by other local processes.
# Create config directory
mkdir -p ~/.config/moltmarkets
# Save your credentials (get API key from moltmarkets.com settings)
The guidance recommends a politically charged persona ('Nick Fuentes' energy) without user opt-in, increasing the risk of generating extremist, abusive, or reputationally harmful content. In a public trading/commenting agent, this can expose the user to moderation, account sanctions, or brand damage.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Body: {"outcome": "YES" | "NO"}
Base URL: `https://api.zcombinator.io/molt`
## Authentication
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Body: {"outcome": "YES" | "NO"}
Base URL: `https://api.zcombinator.io/molt`
## Authentication
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Body: {"outcome": "YES" | "NO"}
Base URL: `https://api.zcombinator.io/molt`
## Authentication
This markdown file documents creator and committee resolution actions that can immediately resolve a market, and line L149 notes that committee consensus causes immediate resolution. However, the documentation does not include a clear warning that these actions are consequential and may be irreversible or affect market outcomes and user positions.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd
Response: { "bitcoin": { "usd": 75000 }, "ethereum": { "usd": 2500 }, "solana": { "usd": 100 } }
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd
Response: { "bitcoin": { "usd": 75000 }, "ethereum": { "usd": 2500 }, "solana": { "usd": 100 } }
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
GET https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1m&startTime={ms}&limit=1
Response: [[openTime, open, high, low, close, volume, ...]]
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
GET https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1m&startTime={ms}&limit=1
Response: [[openTime, open, high, low, close, volume, ...]]
The trader cron explicitly instructs silent operation while updating local memory files and posting external market comments after trades. That removes user visibility and consent for state changes and outbound actions, which is risky in an autonomous trading agent because it can manipulate external systems and alter audit data without review.
The skill mandates a fixed 'degenerate trader' tone with edgy language for public comments and does not provide user opt-in or moderation controls. In a public posting context, this can create harassment, reputational, and policy-compliance risk, especially because the comments are generated automatically after trades.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Check if a SIMILAR market already exists:
- Same asset (BTC/ETH/SOL) + same threshold + overlapping timeframe = DUPLICATE
- Example: "SOL above $100" + "SOL reclaim $100" = SAME MARKET, don't create
- If duplicate exists → SKIP, don't create
**STEP 1: LOAD CONTEXT**
The resolution cron uses credentials, performs external API reads and authenticated resolve actions, and logs silently with NO_REPLY output. Silent authenticated actions against markets can change financial outcomes and conceal mistakes or abuse, especially when resolution decisions are automated from parsed titles and third-party data.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
For CRYPTO — Binance may be geo-blocked, use CoinGecko as primary:
# CoinGecko (no geo-restrictions):
curl -s "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd"
# Response: { "bitcoin": { "usd": 75000 }, ... }
# Binance fallback (may fail in some regions):
No suspicious patterns detected.