Back to skill

Security audit

amazon-product-search-scraper-api-skill

Security checks across malware telemetry and agentic risk

Overview

The skill is a coherent BrowserAct Amazon scraper, but it unsafely tells users to provide an API key through the agent conversation.

Install only if you are comfortable using BrowserAct for Amazon product-search extraction. Configure BROWSERACT_API_KEY as a local environment variable or approved secret, do not paste the key into chat, and rotate it if it has already been shared. Use the skill only for explicit Amazon BrowserAct scraping tasks and review whether Amazon or BrowserAct terms apply to your use case.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:20
Finding
API Key Disclosure Encouraged Through Agent Conversation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:20-22`; related user-facing behavior in `scripts/amazon_product_search_scraper_api.py:106-113` **Vulnerability Type**: Sensitive credential exposure through conversational input **Risk Level**: Medium ### Vulnerable Code `SKILL.md:20-22`: ```markdown Before running, check the `BROWSERACT_API_KEY` environment variable. If not set, do not take other measures; ask and wait for the user to provide it. **Agent must inform the user**: > "Since you haven't configured the BrowserAct API Key yet, please go to the [BrowserAct Console](https://www.browseract.com/reception/integrations?co-from=amazon-product-search-scraper) to get your Key." ``` `scripts/amazon_product_search_scraper_api.py:106-113`: ```python api_key = os.getenv("BROWSERACT_API_KEY") if not api_key: print("\n[!] ERROR: BrowserAct API Key is missing.", flush=True) print("Please follow these steps:", flush=True) print(f"1. Go to: {API_KEY_URL}", flush=True) print("2. Copy your API Key.", flush=True) print("3. Provide it to me or set it as an environment variable (BROWSERACT_API_KEY).", flush=True) sys.exit(1) ``` ### Technical Analysis The Skill instructions explicitly direct the Agent to ask the user to provide the BrowserAct API key, and the script reinforces this by presenting disclosure to the Agent as an acceptable setup method. API keys are bearer credentials and should not be entered into an AI conversation. A key disclosed through chat may be retained in conversation history, Agent state, telemetry, model-provider logs, debugging records, or exported transcripts. This exposure is unnecessary because the implementation already supports secure environment-based credential injection through `BROWSERACT_API_KEY`. The script's direct network use of the key is otherwise consistent with the declared functionality: it sends the bearer credential over HTTPS only to the declared BrowserAct API endpoint at `api.br ...[truncated 1457 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove every instruction that asks users to provide or paste the API key into the Agent conversation. 2. Replace the affected instruction with guidance to configure the key locally through a protected environment variable or approved secret manager. 3. Change the script message to state only that `BROWSERACT_API_KEY` must be configured securely before invocation. For example: ```python if not api_key: print( "Error: BROWSERACT_API_KEY is not configured. " "Set it locally using a secure environment or secret manager; " "do not paste the key into chat.", flush=True, ) sys.exit(1) ``` 4. Update `SKILL.md` to require the Agent to report only whether the credential is configured, without requesting, displaying, repeating, or storing its value. 5. Avoid including secrets in command-line arguments because they may appear in process listings and shell history. 6. Ensure logs and error messages never print authorization headers or API-key values. 7. Recommend immediate revocation and rotation if a user has already disclosed a key in conversation. 8. Where supported, use narrowly scoped, short-lived credentials and account-level quota or billing alerts to reduce the impact of accidental disclosure. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill declares only `openclaw.requires` metadata for bins and env vars, but it operationally instructs the agent to execute a Python script that uses an API key and makes external network requests. If the platform relies on explicit permission declarations for policy enforcement or user awareness, this mismatch can bypass expected guardrails and cause unintended credential use or outbound data transfer.

Vague Triggers

Medium
Confidence
86% confidence
Finding
The description is broad enough to match many generic scraping, research, monitoring, enrichment, and lead-generation requests, which can cause the agent to invoke this networked skill in situations where the user did not explicitly ask to use BrowserAct or Amazon scraping. That increases the chance of unnecessary third-party data sharing, unintended policy violations, or over-collection from a sensitive external source.

VirusTotal

62/62 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.