Back to skill

Security audit

Galleon DeFi Data

Security checks for vulnerabilities and agentic risk

Overview

This skill is a read-oriented DeFi data workflow that uses disclosed provider endpoints and repeatedly limits credential, payment, trading, retry, and logging behavior.

Install this only if you want an agent to query and configure DeFi data sources. Use care with paid provider accounts, OAuth, API keys, wallet or portfolio addresses, and credit-consuming reads; the skill itself tells the agent to keep those user-controlled and read-only, but those data sources can still reveal sensitive financial context.

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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Unbounded Resource Access

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.

Content

Scanner excerpt · SKILL.md (reported line 44)May include surrounding context.

md
## Handle gaps without fabricating continuity

Treat null/absent data as unknown; empty search results can mean identity, coverage or permission gaps. Distinguish transport failure, rate limiting, authentication, exhausted credits, stale timestamps and genuine zero values. On 401/403 stop and resolve access. On 429 honor a bounded Retry-After/backoff policy within the task budget; do not retry indefinitely or switch to paid access automatically. Retain the previous observation only with its original timestamp and an explicit stale label.

If data freshness, identity or methodology cannot support the requested decision, return the usable evidence and the unresolved requirement. Hand off execution to the user's existing workflow only after it has an actual quote/state check and the required authority.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/aixbt.md (reported line 3)May include surrounding context.

md
# AIXBT crypto research

Reviewed 2026-09-05 against the [official MCP guide](https://docs.aixbt.tech/developers/mcp), [API v3 overview](https://docs.aixbt.tech/developers/v3) and [current OpenAPI contract](https://api.aixbt.tech/v3/openapi.yaml). Use this reference for narrative discovery and project events; use other providers for missing price, liquidity or protocol state with explicit attribution.

## Access

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/aixbt.md (reported line 9)May include surrounding context.

md
# AIXBT crypto research

Reviewed 2026-09-05 against the [official MCP guide](https://docs.aixbt.tech/developers/mcp), [API v3 overview](https://docs.aixbt.tech/developers/v3) and [current OpenAPI contract](https://api.aixbt.tech/v3/openapi.yaml). Use this reference for narrative discovery and project events; use other providers for missing price, liquidity or protocol state with explicit attribution.

## Access

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/aixbt.md (reported line 10)May include surrounding context.

md
# AIXBT crypto research

Reviewed 2026-09-05 against the [official MCP guide](https://docs.aixbt.tech/developers/mcp), [API v3 overview](https://docs.aixbt.tech/developers/v3) and [current OpenAPI contract](https://api.aixbt.tech/v3/openapi.yaml). Use this reference for narrative discovery and project events; use other providers for missing price, liquidity or protocol state with explicit attribution.

## Access

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/methodology.md (reported line 51)May include surrounding context.

md
if (!['coingecko', 'defillama'].includes(provider)) return { ok: false, error: 'invalid_provider' };
  if (typeof id !== 'string' || !/^[a-z0-9][a-z0-9-]{0,99}$/.test(id)) return { ok: false, error: 'invalid_id' };
  if (!Number.isSafeInteger(maxAge) || maxAge < 1 || maxAge > 86400) return { ok: false, error: 'invalid_max_age' };
  const source = provider === 'coingecko' ? 'https://api.coingecko.com/api/v3/simple/price' : 'https://coins.llama.fi/prices/current/';
  const url = provider === 'coingecko' ? `${source}?ids=${encodeURIComponent(id)}&vs_currencies=usd&include_last_updated_at=true` : `${source}coingecko:${encodeURIComponent(id)}`;
  const controller = new AbortController(), request = dependencies.fetch ?? fetch, clock = dependencies.now ?? Date.now;
  let timer;

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/price-check.mjs (reported line 49)May include surrounding context.

js
if (!['coingecko', 'defillama'].includes(provider)) return { ok: false, error: 'invalid_provider' };
  if (typeof id !== 'string' || !/^[a-z0-9][a-z0-9-]{0,99}$/.test(id)) return { ok: false, error: 'invalid_id' };
  if (!Number.isSafeInteger(maxAge) || maxAge < 1 || maxAge > 86400) return { ok: false, error: 'invalid_max_age' };
  const source = provider === 'coingecko' ? 'https://api.coingecko.com/api/v3/simple/price' : 'https://coins.llama.fi/prices/current/';
  const url = provider === 'coingecko' ? `${source}?ids=${encodeURIComponent(id)}&vs_currencies=usd&include_last_updated_at=true` : `${source}coingecko:${encodeURIComponent(id)}`;
  const controller = new AbortController(), request = dependencies.fetch ?? fetch, clock = dependencies.now ?? Date.now;
  let timer;

Static analysis

No suspicious patterns detected.