Back to skill

Security audit

Mobazha Product Import

Security checks for vulnerabilities and agentic risk

Overview

This import skill is mostly coherent, but its example scraping and API code could send requests or credentials to unintended sites if followed as written.

Review this skill before installing or using it. Prefer CSV exports or official APIs where possible, keep tokens least-privileged, do not copy the Shopify pagination example without validating the next URL stays on the expected Shopify host, and only let the Amazon/image download flow fetch known public product and image URLs into a controlled local directory.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
references/shopify-api.md:94
Finding

Shopify access token can be disclosed through unvalidated pagination URLs

Content
View full analysis
")[0] return products ``` ### Technical Analysis The Shopify access token is correctly required for authenticated product retrieval, but the implementation reuses that sensitive header for every pagination request. The next URL is extracted directly from the remotely supplied `Link` response header without validating its scheme, hostname, port, or origin. Consequently, a malicious, compromised, intercepted, or unexpected Shopify response could provide an attacker-controlled pagination URL. The next loop iteration would send the `X-Shopify-Access-Token` header to that destination. Because this is a custom authentication header, applications must not assume that the HTTP client will remove it when the destination changes. Sending a least-privilege token to the canonical Shopify Admin API is necessary for the declared product-import functionality. Forwarding it to an arbitrary origin is not necessary and violates least-privilege and credential-boundary requirements. The code also omits a request timeout, explicit status validation, and response-schema validation, increasing the potential for denial of service or unsafe failure behavior. ### Attack Path 1. ...[truncated 1458 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
references/amazon-scrape.md:50
Finding

Unrestricted Amazon scraper URL enables server-side request forgery

Content
View full analysis
Remediation
View remediation
5 * 1024 * 1024: raise ValueError("Response is too large") soup = BeautifulSoup(resp.text, "html.parser") # Continue with product extraction. ``` If regional Amazon domains are required, each supported hostname should be explicitly enumerated rather than accepted through suffix or substring ma ...[truncated 11 chars]
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The guidance explicitly recommends proxy use and operational scraping tactics against Amazon without clearly warning about legal, account, privacy, or infrastructure risks. In a product-import skill, this can encourage users or downstream agents to perform evasive scraping that may violate terms of service, trigger account bans, or expose third-party systems and personal data during collection.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The mapping explicitly instructs the agent to download external image URLs and write them to local files without any requirement to warn the user, obtain consent, or constrain destinations and sources. In an import skill, this can trigger unannounced network access and filesystem writes based on untrusted marketplace data, creating SSRF, privacy, and unsafe file-handling risk if the implementation follows the guidance naively.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The natural-language and config intent of the header forces responses toward the en-US locale. Because the file does not offer user opt-in or explain that the locale restriction is required for a region-specific use case, it conflicts with the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This markdown file documents using a Shopify custom app with read_products scope and an X-Shopify-Access-Token header to retrieve store product data. Because the guidance involves sensitive credentials and network transmission of store data, a brief warning about protecting tokens and limiting use to authorized stores is expected under the missing user warnings criterion.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The example code makes repeated authenticated requests to Shopify using a bearer-style access token and accumulates product data, but the surrounding documentation does not warn users that this transmits store data and requires careful handling of credentials. For markdown guidance that could be copied into practice, a concise disclosure helps users understand privacy and security implications.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.