Back to skill

Security audit

ecommerce-market-analyzer-skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed e-commerce scraping tool, but it needs review because it can automatically visit third-party sites, save screenshots and HTML locally, and includes anti-bot evasion guidance without strong user confirmation.

Install only if you intentionally want browser-based scraping. Before running it, confirm the exact target sites, market locale, output directory, and retention plan; review site terms and robots.txt; avoid bypassing CAPTCHAs or anti-bot controls; and pin/verify Playwright and Chromium versions for safer installation.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
README.md:163
Finding

Unpinned Third-Party Package and Browser Binary Installation

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 163-170
Vulnerability Type: Unpinned and unverifiable third-party dependencies
Risk Level: Medium

Vulnerable Code

bash
# Use uv to create a virtual environment
uv venv
source .venv/bin/activate

# Install dependencies
uv pip install playwright
playwright install chromium

Technical Analysis

The installation instructions retrieve Playwright without specifying an exact reviewed version, a lock file, or package hashes. They then use the resolved Playwright package to download a corresponding Chromium executable without documenting or verifying the expected browser revision or artifact checksum.

As a result, the repository does not fully determine which third-party code and browser executable users will install. Installation behavior may change over time as upstream releases change. The effective trust boundary therefore extends beyond the audited project to the configured Python package index, the selected Playwright release, and Playwright's browser-distribution infrastructure.

This is a supply-chain weakness rather than evidence that the current Playwright or Chromium packages are malicious.

Attack Path

  1. A user installs the Skill and follows the setup commands in README.md.
  2. uv pip install playwright resolves the latest compatible Playwright package from the user's configured package index.
  3. An attacker who compromises the upstream package, distribution account, package index, or dependency-delivery path causes a malicious or altered release to be selected.
  4. The package is installed into the virtual environment with the user's permissions.
  5. playwright install chromium downloads an external browser executable selected by that unpinned package version.
  6. The installed package or downloaded executable runs when the scraper is invoked, allowing malicious code to execute under the account running the Skill.

Impact Assessment

Successful exploitation ...[truncated 539 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin Playwright to an exact, reviewed version instead of resolving a mutable latest version.

  2. Commit a dependency lock file containing cryptographic hashes and require frozen installation, for example:

    bash
    uv sync --frozen
    
  3. Define the dependency in a managed project file and generate the lock file through a controlled release process.

  4. Document the expected Chromium revision associated with the pinned Playwright version.

  5. Verify downloaded browser artifacts using vendor-provided checksums or signatures where supported.

  6. Use a trusted or internally controlled package index for higher-assurance deployments.

  7. Run dependency installation and browser automation in a least-privileged container or sandbox with restricted filesystem and credential access.

  8. Add automated dependency scanning and review dependency updates before regenerating the lock file.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill promises broad market analysis, product extraction, and reporting, but the described behavior is largely a scraping workflow with manual follow-on steps and a hardcoded website list. This mismatch can cause operators to overtrust the skill's coverage, leading to unintended scraping, incorrect conclusions, or use outside the user's actual request.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 34)May include surrounding context.

安装后,在Claude Code中查看可用skills:

bash
ls ~/.claude/skills/

📖 使用方法

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README advertises broad trigger phrases such as 'scrape e-commerce websites' and 'analyze product trends', which can overlap with ordinary user requests and cause the skill to activate when the user did not specifically consent to website scraping. In this skill’s context, unintended activation is more dangerous because the advertised workflow includes automated browsing, popup handling, and local capture of screenshots and HTML from third-party sites.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The usage section tells users to invoke the skill with simple natural-language prompts, but it does not clearly warn that activation will initiate scraping of external websites and persist screenshots and HTML files locally. This lack of informed consent is risky because users may trigger network activity and local data collection without understanding the side effects.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill instructs creating directories, copying templates, exporting CSVs, and saving screenshots/HTML, but it declares no explicit tool scope or permissions boundary. That creates an authorization gap where an agent may perform local file writes without clear user-visible limitation or least-privilege constraints.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger phrases are broad enough to activate this skill for many generic requests about markets, trends, or products, even when the user did not intend automated scraping. In context, that is risky because activation leads directly to network access, popup interaction, and local data capture.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow tells the agent to immediately run a scraper, handle popups, and save screenshots/HTML without a clear user-facing warning that it will access external websites and store local copies of retrieved content. This reduces informed consent and may surprise users with network activity and retained data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill recommends browser fingerprinting evasion and proxy rotation as solutions to anti-bot detection. Guidance that facilitates bypassing anti-automation controls materially increases abuse potential and can encourage users or agents to evade website defenses in ways that may violate site policies or legal constraints.

Content

No source excerpt is available for this finding.

Ssd 2

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The anti-bot troubleshooting section provides operational advice for getting around scraping defenses, which can directly enable misuse against targets that do not want automated access. In a web-scraping skill, this context makes the issue more dangerous because the instructions are immediately actionable and adjacent to automation steps.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The summary describes automated scraping, popup handling, screenshot capture, and HTML source collection without a prominent user warning that the skill will access third-party websites and save potentially sensitive or regulated content locally. This is risky because users may invoke the skill expecting analysis only, while the skill actually performs active data collection that may implicate privacy, terms-of-service, or compliance concerns.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation phrases are very broad and map to common research requests like 'analyze product trends' or 'generate market report,' which can cause the skill to trigger in contexts where the user did not explicitly consent to website scraping, screenshot capture, or HTML collection. In this skill, automatic activation is more dangerous because the workflow includes browser automation and local data capture across multiple third-party sites, increasing the chance of unintended scraping or over-collection.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The browser context is hard-coded to use the German locale and Berlin timezone, and the script also contains logic to select Germany for at least one site. This imposes a specific language/locale behavior without any visible user opt-in or clear policy justification in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The template's 'Localization' section shows fixed locale and timezone_id values, which can imply the generated skill output forces a specific language or locale. Under the policy, locale constraints should either be optional for the user or clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.