Back to skill

Security audit

Market Intelligence Claw

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed market-research assistant that uses optional external APIs with approval steps and no persistent install behavior.

Before installing, understand that approved searches can reveal your research interests to web search and third-party data providers. Review each research plan, avoid confidential product codenames or private customer data in queries, use dedicated read-only API credentials, and set spend caps for paid providers.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (26)

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill is configured to activate on very broad phrases like general strategic business questions and to do so proactively, which can cause unnecessary invocation on ordinary conversations. In practice this increases the chance of unintended external research, expanded data exposure to tools, and user confusion or bypass of normal least-privilege expectations around when live market queries should run.

Content

No source excerpt is available for this finding.

Context Leakage

High
Category
Data Exfiltration
Confidence
78% confidence
Finding

The skill instructs the agent to collect and maintain a business profile from conversation before research, which creates a context-aggregation risk even if some sensitive fields are excluded. Centralizing business name, products, target customer, platforms, competitors, geography, and goals can still expose commercially sensitive context to later tool calls or to downstream model handling if data minimization and strict boundary rules are not enforced.

Content

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

STEP 1 — BUILD BUSINESS PROFILE

Collect conversationally before any research. Update as user shares more.

yaml
Business Profile:

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

This module instructs sending user-provided keywords and inferred geography to a third-party API without any mention of consent, data minimization, or validation of whether the query may contain sensitive business information. In a market-intelligence skill that is triggered proactively, this increases the chance that confidential strategy terms, unreleased product names, or private client data could be transmitted externally.

Content

Scanner excerpt · references/keywords-seo.md (reported line 31)May include surrounding context.

1. Seed Keyword Search Volume (Tier 2)

text
POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live
Body:
[{
  "keywords": ["[keyword 1]", "[keyword 2]", "[keyword 3]"],

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The markdown repeatedly specifies language_name: "English", which imposes a fixed language choice in the skill's natural-language instructions. The file does not offer a user language/locale choice or explain why English is required, so this conflicts with the language/locale policy criteria.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

Keyword suggestion requests send a seed term to an external provider, which can leak proprietary campaign plans, product concepts, or internal market hypotheses. Because this skill is designed to be used proactively for strategic decisions, the context makes accidental disclosure more likely if the seed term comes directly from sensitive user prompts.

Content

Scanner excerpt · references/keywords-seo.md (reported line 53)May include surrounding context.

2. Keyword Expansion (Tier 2)

text
POST https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live
Body:
[{
  "keyword": "[seed term]",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This step fixes language_name to English in the request example, forcing a language choice in the workflow instructions. Because the document provides no opt-in or rationale for restricting analysis to English, it meets the policy-violation condition.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

SERP landscape requests transmit the target keyword, location, and language to a third-party service. While normal for SEO tooling, it still creates an external disclosure channel for potentially sensitive strategic interests, and the skill text does not describe any controls around consent, tenancy boundaries, or handling of regulated data.

Content

Scanner excerpt · references/keywords-seo.md (reported line 69)May include surrounding context.

3. SERP Landscape — Who Ranks? (Tier 2)

text
POST https://api.dataforseo.com/v3/serp/google/organic/live/advanced
Body:
[{
  "keyword": "[keyword]",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The SERP request example mandates language_name: "English", which is a natural-language locale restriction. No user choice, opt-in, or documented business necessity is provided, so the instruction violates the stated language/locale policy.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

Sending a competitor domain to an external service is generally less sensitive than sending proprietary keywords, but it still constitutes third-party data transmission and can reveal the user's strategic research targets. In aggregate, repeated lookups may expose confidential competitive intelligence workflows or acquisition interests.

Content

Scanner excerpt · references/keywords-seo.md (reported line 88)May include surrounding context.

4. Competitor Traffic Estimate (Tier 2)

text
POST https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live
Body:
[{
  "target": "competitor.com",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The competitor traffic step constrains the workflow to English by default through the language_name field. Since the file presents this as a general module rather than an English-only regional tool, the fixed language is an unjustified locale constraint.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

Ranked-keyword lookups for a competitor domain also send research intent to a third party and may expose a user's strategic analysis pattern. The capability is legitimate, but without explicit governance the skill can leak sensitive business priorities through routine API use.

Content

Scanner excerpt · references/keywords-seo.md (reported line 104)May include surrounding context.

5. Competitor Top Keywords (Tier 2)

text
POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
Body:
[{
  "target": "competitor.com",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This example again sets language_name to English, enforcing a language assumption across the module's instructions. The document does not provide a choice or justification, so it fits the natural-language policy violation criteria.

Content

No source excerpt is available for this finding.

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/modules-2.md (reported line 31)May include surrounding context.

Rainforest API (richer):

text
GET https://api.rainforestapi.com/request
  ?api_key={KEY}&type=search&q=[product]&amazon_domain=amazon.in

Returns: search_results[].price.value, .rating, .ratings_total, .bestseller_rank

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/modules-2.md (reported line 206)May include surrounding context.

Rainforest API (richer):

text
GET https://api.rainforestapi.com/request
  ?api_key={KEY}&type=search&q=[product]&amazon_domain=amazon.in

Returns: search_results[].price.value, .rating, .ratings_total, .bestseller_rank

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

Rainforest API (richer):

text
GET https://api.rainforestapi.com/request
  ?api_key={KEY}&type=search&q=[product]&amazon_domain=amazon.in

Returns: search_results[].price.value, .rating, .ratings_total, .bestseller_rank

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The NewsAPI example hard-codes language=en, which imposes an English-only locale constraint in the skill instructions. There is no accompanying user choice, opt-in, or stated regional/business justification for restricting results to English.

Content

No source excerpt is available for this finding.

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

Keyword Research — Search Volume:

text
POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live
Body:
[{
  "keywords": ["running shoes india", "best running shoes"],

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

Keyword Research — Search Volume:

text
POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live
Body:
[{
  "keywords": ["running shoes india", "best running shoes"],

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

Keyword Research — Search Volume:

text
POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live
Body:
[{
  "keywords": ["running shoes india", "best running shoes"],

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

Keyword Research — Search Volume:

text
POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live
Body:
[{
  "keywords": ["running shoes india", "best running shoes"],

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The setup guide repeatedly fixes locale/language parameters to India and English in example API usage, such as amazon_domain=amazon.in. This can amount to a natural-language locale policy constraint because the file presents these settings as the default pattern without stating that users may choose other languages or regions except in a limited single example.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file includes natural-language request examples that require language_name to be English, and they are presented as normative setup guidance. Because the guide does not consistently offer users a language choice, this risks violating the language/locale policy for skills that should not force a specific language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This example hard-codes language_name: "English" in a way that appears prescriptive for skill operation. Since the guide does not frame this as optional or user-selected, it creates the same language policy concern as other examples in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The example request uses language_name: "English" as a fixed parameter in a general setup guide. Without an explicit statement that users may select another language, this reads as a forced language default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The setup guide continues the same pattern of setting language_name: "English" in example API calls. In the absence of opt-in or a note that other languages are supported, this is a natural-language policy issue under the stated language/locale rule.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.