Back to skill

Security audit

deside

Security checks for vulnerabilities and agentic risk

Overview

This skill is a documentation-style Deside integration for agent discovery and Solana launch/trading flows, with high-impact wallet actions clearly tied to its purpose and requiring user approval and signing.

Install only if you intend to let an agent interact with Deside and a Solana wallet. Treat wallet keys, access tokens, refresh tokens, signed transactions, and acceptTerms as sensitive; require explicit user approval for mainnet launches, trades, paid Ask requests, and any terms acceptance.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (28)

Credential Access

High
Category
Privilege Escalation
Confidence
91% confidence
Finding

The text explicitly documents issuance of bearer access and refresh tokens with meaningful lifetimes but does not pair that with handling requirements. In an agent skill whose purpose is autonomous sign-in and token use, leaked tokens would let an attacker impersonate the agent and call MCP tools until expiry or revocation.

Content

Scanner excerpt · references/wallet-and-signin.md (reported line 196)May include surrounding context.

}

text

The access token lasts 45 minutes. The refresh token lasts 7 days.

### 5. Open an MCP session

Credential Access

High
Category
Privilege Escalation
Confidence
94% confidence
Finding

The refresh-token section describes a renewable credential that can maintain authenticated access, but lacks strong warnings about protecting, rotating, and revoking it. Because refresh tokens enable continued access token issuance, their exposure is more severe than a short-lived access token leak.

Content

Scanner excerpt · references/wallet-and-signin.md (reported line 255)May include surrounding context.

Refresh the token

Each refresh returns a new access token and a new refresh token; the old refresh token stops working. client_id is optional here. A bad or used refresh token answers 400 invalid_grant.

bash
curl -X POST https://mcp.deside.io/oauth/token \

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 · SKILL.md (reported line 33)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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 · SKILL.md (reported line 34)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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 · SKILL.md (reported line 35)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/ask.md (reported line 3)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/ask.md (reported line 10)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/ask.md (reported line 95)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/ask.md (reported line 105)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/directory-api.md (reported line 8)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/directory-api.md (reported line 84)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/directory-api.md (reported line 94)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/directory-api.md (reported line 113)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/errors-and-limits.md (reported line 11)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/mcp-tools.md (reported line 51)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

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/mcp-tools.md (reported line 55)May include surrounding context.

md
# Ask: find agents with a question

`POST https://api.deside.io/api/v1/ask` finds agents from a question in plain words. It answers with a short text and up to 5 agents, only from the directory. The states are from Deside's checks, never from the AI.

Ask is free on deside.io and for users signed in with a wallet. Any other caller pays 0.01 USDC per answered question over x402 on Solana.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/ask.md (reported line 10)May include surrounding context.

Ask with the API

bash
curl -X POST "https://api.deside.io/api/v1/ask" \
  -H "content-type: application/json" \
  -d '{"question":"an agent that checks token risk on Solana"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/ask.md (reported line 95)May include surrounding context.

Get the payment offer

bash
curl -i -X POST "https://api.deside.io/api/v1/ask" \
  -H "content-type: application/json" \
  -d '{"question":"an agent that checks token risk on Solana"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation instructs callers to send acceptTerms: true after reading and showing terms to the user, but the flagged concern is valid because this file does not itself emphasize that user acceptance must be explicit, informed, and obtained before automation proceeds. In a skill that can launch tokens and act on behalf of an agent wallet, silently or automatically asserting terms acceptance could create unauthorized legal/financial consent and unsafe downstream actions.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/launchpad.md (reported line 48)May include surrounding context.

Sign in first. Then:

bash
curl -X POST https://mcp.deside.io/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "mcp-session-id: YOUR_SESSION_ID" \
  -H "content-type: application/json" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/launchpad.md (reported line 128)May include surrounding context.

Sign in first. Then:

bash
curl -X POST https://mcp.deside.io/mcp \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "mcp-session-id: YOUR_SESSION_ID" \
  -H "content-type: application/json" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/launchpad.md (reported line 139)May include surrounding context.

Or, without the MCP, over REST:

js
const res = await fetch('https://launchpad.deside.io/v1/submit', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({ network: prepared.network, transaction: signed })

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

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.

Content

Scanner excerpt · references/wallet-and-signin.md (reported line 1)May include surrounding context.

md
# Create a wallet and sign in

Deside never creates, sees or stores your wallet key. Create one on your own machine, then sign in through OAuth with a wallet signature.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · references/wallet-and-signin.md (reported line 15)May include surrounding context.

solana-keygen new --no-bip39-passphrase -o ~/.config/deside/agent.json

text

Keep the file private: `chmod 600 ~/.config/deside/agent.json`. Read the address with `solana-keygen pubkey ~/.config/deside/agent.json`.

### With Node.js and @solana/web3.js

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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/wallet-and-signin.md (reported line 60)May include surrounding context.

For a one-time client, register once:

bash
curl -X POST https://mcp.deside.io/oauth/register \
  -H "content-type: application/json" \
  -d '{
    "client_name":"My agent",

Static analysis

No suspicious patterns detected.