Back to skill

Security audit

Isma Airdrop Finder

Security checks for vulnerabilities and agentic risk

Overview

This looks like a local crypto report generator, but it overstates live discovery/analysis and may present hardcoded or mock crypto guidance as current information.

Install only if you understand this is not a reliable live airdrop-discovery system. Treat generated crypto reports as informational drafts, verify all projects and links independently, use wallet-safety practices before any bridge/testnet/quest activity, and do not rely on its trading guidance without separate current market research.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (26)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding
The declared description overstates the implemented functionality. The code does generate an airdrop report, but it does not actually discover opportunities from live/public sources; instead it relies on a fixed in-code dataset. More importantly, the description prominently includes daily market analysis, market structure, support/resistance, and macro news tracking, none of which are present in the code. The script’s real behavior is limited to filtering sample airdrop entries, formatting a report, and writing it to disk. This is a material purpose/behavior mismatch rather than a minor implementation gap.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The description overstates and partly misrepresents the code. While the script does perform a narrow form of market monitoring by checking BTC price and comparing it to stored support/resistance levels, its primary behavior is a lightweight heartbeat check, not comprehensive daily market analysis. More importantly, it does not perform any airdrop discovery or identify high-funding projects, which are central to the declared purpose. It also makes an external HTTPS request to CoinGecko, conflicting with the claim of being self-contained with no external dependencies. Local state persistence is consistent with monitoring, but overall the implemented behavior is materially narrower and different from the declared description.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The description prominently includes automated crypto airdrop discovery and identification of high-funding projects, but the code does none of that. Its actual primary purpose is a daily BTC/ETH market report generator. While it does perform some declared analysis tasks such as support/resistance, trend, and macro-news-style summary, even those are partly based on hardcoded/mock data rather than external discovery. The description also says the skill is self-contained with no external dependencies, yet the code performs outbound HTTPS requests to CoinGecko for live market data. Therefore the declared description does not accurately represent the code’s actual behavior.

Ae1

High
Category
analysis-evasion
Content
node scripts/market_daily_report.js
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/market_daily_report.js
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/market_daily_report.js
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/generate_airdrop_report.js --period=weekly
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/generate_airdrop_report.js --period=weekly
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/generate_airdrop_report.js --period=weekly
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The sample market and airdrop reports use Indonesian terms such as "Selasa," "Maret," and "Laporan Airdrop". The document does not state that output language is configurable or selected by the user, which can imply a default forced locale and conflicts with the language/locale policy requirement.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The report explicitly encourages users to bridge funds, interact with testnets, and join quests without any accompanying safety guidance about wallet segregation, phishing, malicious contracts, bridge risk, gas costs, or irreversible transactions. In a crypto airdrop-hunting context, readers are likely to act on these tips directly, so omission of basic risk warnings can materially increase the chance of asset loss or wallet compromise.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The file is written in Indonesian terms such as 'Selasa', 'Jam 7 Pagi WIB', 'di atas midpoint', and 'buying opportunity' guidance mixed into a fixed locale presentation. Under the stated policy, forcing a specific language or locale without user opt-in is a natural-language policy violation unless the regional constraint is explicitly documented and justified, which is not present here.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
The file header explicitly claims the generator 'Fetches and compiles airdrop opportunities from public sources.' However, the implementation uses a hardcoded sample dataset and performs no HTTPS requests despite importing the https module.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The manifest describes automated airdrop discovery, tracking market structure, support/resistance, and macro news, suggesting live data gathering and broader market-analysis logic. In this file, the core dataset is a static in-code sample array and the program merely filters and formats it, with no implementation of discovery, market structure analysis, support/resistance analysis, or macro-news processing.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The report date is formatted with the hard-coded 'id-ID' locale and the generated report text is written entirely in Indonesian. This imposes a specific language/locale on all users without opt-in or any documented region-specific requirement, which matches the policy violation criteria.

External Transmission

Medium
Category
Data Exfiltration
Content
async function checkBTC() {
  const data = await httpGet(
    'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_market_cap=true&include_24hr_change=true'
  );
  
  if (data.error) return null;
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The user-facing alert strings include Indonesian words such as 'Harga' and 'Jarak' with no indication that the skill is intentionally region-specific or that users can choose their preferred language. This creates a natural-language locale policy issue because the skill imposes a language choice in its output.

Description-Behavior Mismatch

Medium
Confidence
92% confidence
Finding
The skill name and description promise both 'crypto airdrop discovery' and market analysis. This file implements only market reporting functions for BTC/ETH pricing, candle interpretation, and macro news formatting, with no project discovery, funding analysis, or airdrop-hunting behavior present.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest description says the skill is 'Self-contained — no external dependencies,' which implies it operates without relying on outside services. In practice, this file imports HTTPS support and makes a network request to CoinGecko for market data, so successful operation depends on an external API being reachable.

External Transmission

Medium
Category
Data Exfiltration
Content
async function getBTCPrice() {
  try {
    const data = await httpGet(
      'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true'
    );
    return data;
  } catch (e) {
Confidence
85% confidence
Finding
The script performs an external network request to CoinGecko despite the skill being described as self-contained with no external dependencies. In an agent environment, undisclosed outbound connections can leak usage metadata, create supply-chain and availability dependencies, and violate operator expectations or sandbox policies even if the payload is not sensitive.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The code hard-codes the 'id-ID' locale and formats the report with Indonesian-specific wording such as 'Jam 7 Pagi WIB'. This imposes a specific language/locale on all users without opt-in or an explanation that the skill is intended only for an Indonesian audience.

Description-Behavior Mismatch

Low
Confidence
97% confidence
Finding
The skill is described as requiring no external dependencies, but the same document says it uses CoinGecko API, airdrop data from DefiLlama/manual tracking, and requires an internet connection. For a crypto market and airdrop reporting skill, network access is expected, but claiming 'no external dependencies' is still semantically misleading because the functionality depends on external data services.

Intent-Code Divergence

Low
Confidence
95% confidence
Finding
The manifest description says the skill is 'Self-contained — no external dependencies,' and the changelog repeats 'Removed external skill dependencies, self-contained state management.' However, the documentation later states it uses the free CoinGecko API, DefiLlama/manual tracking, requires an internet connection, and optionally depends on OpenClaw for automation. This is a direct documentation-level contradiction about operational dependencies.

Natural-Language Policy Violations

Low
Confidence
83% confidence
Finding
SQP-3 applies to all file types and covers language or locale policy violations. This report presents all user-facing guidance in a single language, which can amount to forcing a specific language without user opt-in when no justification or alternative is provided.

Intent-Code Divergence

Low
Confidence
94% confidence
Finding
The module docstring states the report generator 'Uses crypto-market-data skill + web search for news.' In reality, news items come from the local getMacroNews function returning a static array, so the documented source of news is not what the code does.

Static analysis

No suspicious patterns detected.