Back to skill

Security audit

Shopify

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for Shopify management, but it asks users to install and allow a third-party credentialed plugin that can reach sensitive store, customer, order, webhook, refund, and billing operations.

Install this only if you trust ClawLink and the ClawHub plugin source. Before connecting a production store, verify the plugin identity/version, confirm the Shopify OAuth scopes, understand how to revoke ClawLink access, and require explicit approval for refunds, deletions, webhook changes, bulk operations, and billing charges.

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

Error
Location
SKILL.md:45
Finding

Unpinned Third-Party Plugin Is Granted Credentialed Shopify Access

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 45–47 and 69–75
Vulnerability Type: Unpinned and unauditable third-party dependency
Risk Level: High

Vulnerable Code

bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
markdown
**No API key is required in chat.** ClawLink stores the OAuth token securely and injects it into every Shopify Admin API request on the user's behalf.

### Getting Connected

1. Install the ClawLink plugin (see Install above).
2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.
3. Open https://claw-link.dev/dashboard?add=shopify and connect Shopify.

Technical Analysis

The skill instructs users to install clawlink-plugin by a mutable package name without specifying an immutable version, cryptographic checksum, or signed artifact. It then explicitly adds that plugin to OpenClaw's tool allowlist and restarts the gateway, activating the newly installed component.

The plugin implementation, dependency lock data, and artifact integrity metadata are not included in the audited project. Consequently, its code, transitive dependencies, update behavior, permissions, and credential-handling implementation cannot be verified from this repository.

The external component is trusted to store or mediate Shopify OAuth credentials and proxy authenticated Shopify Admin API operations. This creates a supply-chain trust boundary in which compromise of the registry entry, publisher account, distributed artifact, or an automatically selected future release could introduce malicious code after this skill has been reviewed.

Attack Path

  1. An attacker compromises the plugin publisher account, package registry entry, distribution infrastructure, or a dependency used by clawlink-plugin.
  2. The attacker publishes a malicious release under the same mutable package name.
  3. A user follow ...[truncated 1411 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the plugin to a reviewed, immutable version rather than installing it solely by package name.
  2. Require verification using a cryptographic digest, signed release, or equivalent integrity mechanism before installation.
  3. Publish or vendor the exact plugin source, dependency manifest, and lockfile so the component and its transitive dependencies can be audited.
  4. Configure dependency updates to require explicit review rather than automatically accepting the latest release.
  5. Verify publisher identity and artifact signatures, and fail closed if provenance or integrity validation fails.
  6. Request only the minimum Shopify OAuth scopes necessary for the user's requested operation.
  7. Document token encryption, storage location, retention, rotation, revocation, and proxy endpoint behavior.
  8. Isolate the plugin using sandboxing and restricted filesystem, network, process, and secret access.
  9. Require independent, explicit authorization for destructive, financial, billing, webhook, and bulk operations even after the plugin has been connected.
  10. Provide a documented revocation and incident-response procedure covering Shopify OAuth tokens, ClawLink sessions, and installed plugin artifacts.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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 (4)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill’s declared purpose is Shopify store management, but it instructs the agent to install an additional plugin, modify OpenClaw configuration, and restart the local gateway. That expands the trust boundary from remote Shopify actions to local runtime administration, creating an unnecessary path for environment modification that could be abused or normalize overprivileged behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

These commands directly alter local OpenClaw configuration and restart the gateway, which are privileged host-side operations unrelated to ordinary Shopify business actions. If followed automatically by an agent, they could enable unauthorized plugins, change the local tool surface, or disrupt service availability, making this materially more dangerous than normal API usage.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill states that all write operations require explicit user confirmation, yet its setup flow includes state-changing local commands without any comparable confirmation guard. This inconsistency can mislead operators into trusting the skill’s safety claims while it still instructs impactful local changes, increasing the risk of unintended configuration modification.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
76% confidence
Finding

The manifest emphasizes managing products, orders, customers, inventory, collections, and store operations. Creating app subscriptions and one-time application charges is app billing behavior, which is distinct from ordinary merchant store management and not called out in the stated purpose.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.