Back to skill

Security audit

amazon-buy-box-offers-scraper-api-skill

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it says, but it asks users to provide an API key through the agent and uses broad routing language that could send research targets to an external service unexpectedly.

Install only if you are comfortable sending the target Amazon marketplace URL and ASIN to BrowserAct. Configure BROWSERACT_API_KEY through your environment or a secret manager, not by pasting the key into chat. Treat the skill as an Amazon Buy Box ASIN scraper, not as a general lead-generation, trend-research, or content-research tool.

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
scripts/amazon_buy_box_offers_scraper_api.py:100
Finding
API Key Solicitation Through Insecure Conversational Channels<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:20-22`; `scripts/amazon_buy_box_offers_scraper_api.py:100-107` **Vulnerability Type**: Insecure credential handling **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-buy-box-offers-scraper) to get your Key." ``` `scripts/amazon_buy_box_offers_scraper_api.py:100-107`: ```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 explicitly instructs the Agent to ask the user to provide a BrowserAct API key and the script repeats that the key may be provided “to me.” This encourages users to disclose a reusable bearer credential through the conversational interface. Credentials submitted through chat may be retained in conversation history, Agent execution records, telemetry, debugging output, or other logging systems. This violates secure secret-handling principles because the key does not need to enter the conversational context for the declared scraping operation. The script already supports reading the key from the `BROWSERACT_API_KEY` environment variable, which is the appropriate minimum-privilege mechanism. The actual API calls send the bearer credential over HTTPS only to the declared BrowserAct domain, `api.browseract.com`. No evidence was found t ...[truncated 1489 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all instructions that ask users to paste or provide API keys through the Agent or chat interface. 2. Change the missing-key message to require configuration through a secure environment variable or approved secret manager. For example: ```python if not api_key: print( "Error: BROWSERACT_API_KEY is not configured. " "Set it through your local environment or an approved secret manager; " "do not paste API keys into chat.", flush=True, ) sys.exit(1) ``` 3. Update `SKILL.md` to instruct the Agent to stop execution when the variable is absent and direct the user to configure it outside the conversation. 4. Use the platform’s secret-injection facility, when available, rather than command-line arguments, source files, or plaintext configuration files. 5. Ensure credentials and authorization headers are redacted from application logs, Agent traces, exception reports, and telemetry. 6. If a key has already been supplied through chat, advise the user to revoke or rotate it and remove the exposed value from retained records where supported. 7. Apply the least privilege available to the BrowserAct key and use separate keys for different environments or workloads. ]]>
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Intent-Code Divergence

Medium
Confidence
87% confidence
Finding
The listed use cases significantly broaden the skill's apparent scope beyond scraping Amazon Buy Box offer data, including lead generation, trend discovery, destination/category research, and review analysis that may not be supported by the documented inputs and outputs. This can mislead an agent into invoking the skill for unrelated tasks, increasing the chance of inappropriate data handling, incorrect conclusions, or unintended external transmission of user-supplied data.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The description contains a very broad set of activation cues such as market research, lead/research lists, dataset enrichment, monitoring public records, and calling the template by API, many of which are not narrowly tied to Amazon Buy Box offer scraping. Overbroad routing language can cause accidental invocation in contexts where the user did not intend to send data to BrowserAct, creating unnecessary exposure of prompts, URLs, or identifiers to an external service.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to send inputs to the BrowserAct API but does not clearly warn users up front that their provided marketplace URL, ASIN, and related task context will be transmitted to an external third-party service. This lack of transparent disclosure can undermine user consent and lead to unintended sharing of potentially sensitive business research or proprietary target lists.

Static analysis

No suspicious patterns detected.