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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/market_daily_report.js

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/market_daily_report.js

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/market_daily_report.js

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/generate_airdrop_report.js --period=weekly

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/generate_airdrop_report.js --period=weekly

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/generate_airdrop_report.js --period=weekly

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

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 · scripts/heartbeat_check.js (reported line 51)May include surrounding context.

js
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;

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
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.

Content

Scanner excerpt · scripts/market_daily_report.js (reported line 37)May include surrounding context.

js
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) {

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.