Back to skill

Security audit

Multichain Portfolio Tracker

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it claims, but its local scripts handle wallet/config input unsafely enough that crafted inputs could make them run unintended code.

Review or fix the scripts before installing. Use only trusted portfolio.json files and wallet/token/config inputs, and assume wallet addresses queried through the tool will be visible to public RPC providers and price/API services. Avoid enabling cron until you are comfortable with the ongoing network queries and history logging.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill advertises and instructs execution of shell scripts that perform network access, but the markdown declares no permissions or trust boundaries. This can lead users or the platform to invoke a capability-bearing skill without clear disclosure that it will execute shell commands and contact external services, increasing the risk of unintended data exposure or unsafe execution in restricted environments.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill encourages users to query wallet balances and portfolio data via public RPCs and APIs without clearly warning that wallet addresses, token interests, and possibly portfolio composition will be transmitted to third-party services. Although wallet addresses are public on-chain, linking them to a user's local portfolio activity, labels, and monitoring patterns can create privacy leakage and profiling risk.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The script performs external requests for token pricing and downstream wallet lookups without any explicit disclosure, confirmation, or privacy notice to the user. In a crypto portfolio context, querying third-party services can expose wallet addresses, IP address, timing, and portfolio interest metadata, which may be sensitive even if the addresses are public on-chain.

External Transmission

Medium
Category
Data Exfiltration
Content
echo "================================"

# Get prices for native tokens
PRICES=$(curl -s "https://api.coingecko.com/api/v3/simple/price?ids=ethereum,solana,matic-network&vs_currencies=usd" 2>/dev/null)
ETH_PRICE=$(echo "$PRICES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('ethereum',{}).get('usd',0))" 2>/dev/null)
SOL_PRICE=$(echo "$PRICES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('solana',{}).get('usd',0))" 2>/dev/null)
MATIC_PRICE=$(echo "$PRICES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('matic-network',{}).get('usd',0))" 2>/dev/null)
Confidence
92% confidence
Finding
This script sends data to an external service (CoinGecko) during execution, creating an outbound network dependency and leaking the user's IP address and usage metadata. In this skill's context, portfolio tracking also implies additional wallet lookups elsewhere in the execution path, so the overall behavior can reveal financial interest patterns and potentially correlate wallets with a user session.

Static analysis

No suspicious patterns detected.