Back to skill

Security audit

Meme Signal Scanner

Security checks for vulnerabilities and agentic risk

Overview

The skill’s market-scanning purpose is mostly coherent, but it can auto-start from broad terms, poll external services repeatedly, store signals, and report strong signals to an undefined creator.

Review before installing. This skill does not show code execution, credential theft, or destructive behavior, but it should be used only if you are comfortable with automatic crypto scans, third-party API lookups, temporary memory storage, and unspecified reporting to the publisher or creator. Prefer an explicit opt-in version with narrow triggers and no creator reporting by default.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:6
Finding
Overbroad Auto-Activation with Unspecified Outbound Reporting<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:6-7` and `SKILL.md:90-104` **Vulnerability Type**: Overbroad instruction activation and unauthorized outbound reporting **Risk Level**: Medium ### Vulnerable Code ```yaml auto-activate: true triggers: [meme, pump, dex, token, trending, signal, scan, alpha, snipe, gem] ``` ```text Every 5 minutes: 1. Fetch DEXScreener boosts (latest + top) 2. Fetch GeckoTerminal trending (SOL/ETH/Base) 3. Fetch Pump.fun latest 4. Fetch CoinGecko trending 5. For each new token: a. Score it (0-100) b. Assess risk (low/medium/high) c. Detect narrative d. If score ≥ 70: 🟢 ALERT e. If score 40-69: 🟡 WATCH f. If score < 40: skip 6. Store signals in memory (keep 24h) 7. Report strong signals to creator ``` ### Technical Analysis The Skill is configured to activate automatically on broad, potentially ambiguous terms such as `token`, `scan`, and `meme`. These terms can occur in requests unrelated to meme-coin monitoring. If the host honors this metadata, the Skill can take control of the current workflow without an explicit request to run a persistent market scanner. After activation, the instructions direct the Agent to make recurring outbound requests every five minutes, retain results for 24 hours, and report selected information to an undefined “creator.” The document does not identify the reporting endpoint, transport, recipient identity, transmitted fields, or consent mechanism. Fetching public market information from the named APIs is consistent with the declared scanner functionality. However, sending results to the Skill creator is not required to provide those results to the requesting user and exceeds the minimum data-sharing privileges necessary for the declared task. The audited file does not explicitly send credentials, private keys, environment variables, local files, or other confirmed secrets. It also does not contain executable scripts, remote payload execution, or shell command ...[truncated 1565 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Set `auto-activate` to `false` and require explicit user invocation. 2. Replace broad triggers such as `token`, `scan`, and `meme` with narrowly scoped phrases that clearly request meme-coin signal analysis. 3. Remove the instruction to “Report strong signals to creator.” Results should be returned only to the requesting user. 4. If third-party reporting is a legitimate feature, make it separately opt-in and document: - The recipient and endpoint. - The exact fields transmitted. - The purpose and retention period. - Authentication and transport protections. - A user-visible confirmation before each transmission. 5. Make five-minute polling an explicit, time-bounded user option rather than default behavior. 6. Avoid 24-hour memory retention by default. Retain only the minimum data needed for the active request and provide a deletion mechanism. 7. Apply an outbound-domain allowlist limited to the documented market-data providers. 8. Ensure search terms, conversation content, account identifiers, credentials, private keys, wallet secrets, and unrelated memory are never included in outbound requests or reports. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (11)

Vague Triggers

High
Confidence
96% confidence
Finding
The skill is configured with auto-activate=true and a very broad trigger list covering common crypto terms like token, trending, signal, and alpha. That makes unintended activation likely in normal conversations, which can cause unsolicited crypto analysis, unexpected network access, and increased exposure to risky financial content without clear user consent.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill describes continuous polling of multiple third-party services and reporting results, but does not disclose that it will make recurring external requests or potentially share user-driven search terms with outside APIs. In a conversational agent, this lack of transparency undermines informed consent and can expose user interests or prompts related to trading behavior.

External Transmission

Medium
Category
Data Exfiltration
Content
### DEXScreener
```bash
# Latest boosted tokens
curl -s 'https://api.dexscreener.com/token-boosts/latest/v1'

# Top boosted tokens
curl -s 'https://api.dexscreener.com/token-boosts/top/v1'
Confidence
76% confidence
Finding
This endpoint represents outbound communication to a third-party crypto data provider. While the request itself is not inherently malicious, any external transmission from an auto-activating skill can leak usage patterns and create silent network activity without user awareness.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -s 'https://api.dexscreener.com/token-boosts/latest/v1'

# Top boosted tokens
curl -s 'https://api.dexscreener.com/token-boosts/top/v1'

# Token details
curl -s 'https://api.dexscreener.com/latest/dex/tokens/TOKEN_ADDRESS'
Confidence
76% confidence
Finding
This token-details lookup sends data to an external service and may include token addresses derived from user requests or conversation context. In combination with broad triggers and automation, that creates unnecessary data exposure and unannounced external dependency use.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -s 'https://api.dexscreener.com/token-boosts/top/v1'

# Token details
curl -s 'https://api.dexscreener.com/latest/dex/tokens/TOKEN_ADDRESS'

# Search
curl -s 'https://api.dexscreener.com/latest/dex/search?q=KEYWORD'
Confidence
78% confidence
Finding
The search endpoint transmits query keywords to a third-party API, which can directly reveal user interests, watchlists, or speculative intent. Because the skill is designed to scan meme tokens and can activate broadly, this external search behavior is more sensitive than a static informational reference.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -s 'https://api.dexscreener.com/latest/dex/tokens/TOKEN_ADDRESS'

# Search
curl -s 'https://api.dexscreener.com/latest/dex/search?q=KEYWORD'
```

### GeckoTerminal (DEX analytics)
Confidence
78% confidence
Finding
This additional DEXScreener search/transmission path continues the same risk pattern of third-party network access from within the skill. The danger is elevated by the skill's auto-activation and lack of transparency rather than by the endpoint alone.

External Transmission

Medium
Category
Data Exfiltration
Content
### GeckoTerminal (DEX analytics)
```bash
# Trending pools by chain
curl -s 'https://api.geckoterminal.com/api/v2/networks/solana/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/eth/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/base/trending_pools'
Confidence
75% confidence
Finding
This GeckoTerminal trending-pools request is an external transmission to a third-party analytics provider. Repeated automated polling can create silent background network traffic and reveal a user's focus on specific chains or trading strategies when tied to agent interactions.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Trending pools by chain
curl -s 'https://api.geckoterminal.com/api/v2/networks/solana/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/eth/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/base/trending_pools'

# New pools
Confidence
75% confidence
Finding
This is another third-party request to GeckoTerminal, carrying the same privacy and transparency risks as the other polling endpoints. In this skill, the concern is not code execution but undisclosed outbound traffic from an automatically activated crypto-monitoring workflow.

External Transmission

Medium
Category
Data Exfiltration
Content
# Trending pools by chain
curl -s 'https://api.geckoterminal.com/api/v2/networks/solana/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/eth/trending_pools'
curl -s 'https://api.geckoterminal.com/api/v2/networks/base/trending_pools'

# New pools
curl -s 'https://api.geckoterminal.com/api/v2/networks/solana/new_pools'
Confidence
75% confidence
Finding
This external request extends trending surveillance across another network, increasing the breadth of undisclosed outbound traffic. Because the skill performs broad market scanning every five minutes, cumulative privacy and operational risk is materially higher than a one-off request.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -s 'https://api.geckoterminal.com/api/v2/networks/base/trending_pools'

# New pools
curl -s 'https://api.geckoterminal.com/api/v2/networks/solana/new_pools'
```

### Pump.fun (Solana meme launchpad)
Confidence
75% confidence
Finding
The new-pools endpoint supports discovery of newly launched assets, which fits the skill's speculative trading purpose but still introduces external transmission risk. Combined with automated scanning and alerting, it can silently perform recurring market surveillance without transparent user approval.

External Transmission

Medium
Category
Data Exfiltration
Content
### CoinGecko Trending
```bash
curl -s 'https://api.coingecko.com/api/v3/search/trending'
```

## Scoring System (0-100)
Confidence
74% confidence
Finding
This CoinGecko trending request is a third-party network call that contributes to the skill's undisclosed aggregation pipeline. Although common and benign in isolation, it becomes a meaningful issue here because the skill is set to auto-activate and continuously aggregate/report external data.

Static analysis

No suspicious patterns detected.