MerchantGuard

PendingStatic analysis audit pending.

Overview

No static analysis result has been recorded yet. Pattern checks will appear here once the artifact has been analyzed.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Users may treat the scan or certification as stronger assurance than the provided implementation supports.

Why it was flagged

The included local scanner evidence in guard.py shows a limited hard-coded regex pattern set, not artifact-backed evidence of 102 local checks. For a payment/sensitive-data compliance skill, overstated scan breadth can lead users to over-rely on its results.

Skill content
GuardScan — Scan your code or skills directory for 102 security patterns ... Runs locally, nothing uploaded.
Recommendation

Treat results as advisory, verify critical payment and sensitive-data systems with independent security/compliance review, and ask the publisher to align claims with documented implemented checks.

What this means

If run on a broad directory, it may read and print findings about sensitive local files.

Why it was flagged

The scanner recursively reads user-selected directories, including potentially sensitive config files such as .env. This is purpose-aligned for a security scanner and the code says results stay local, but the path scope can be broad.

Skill content
for filepath in scan_path.rglob("*") ... scan_extensions = {".py", ".js", ... ".env", ".sh", ".toml"}
Recommendation

Run scans only on intended project directories and avoid scanning unrelated private folders unless necessary.

What this means

Agent endpoint details and business/compliance inputs may be shared with MerchantGuard when those commands are used.

Why it was flagged

Mystery Shopper sends agent identifiers and optional endpoint URLs to the MerchantGuard API, and other commands similarly send questions, merchant metrics, wallet addresses, or certification inputs. This is disclosed and purpose-aligned, but it crosses a provider boundary.

Skill content
if endpoint:
        payload["endpoint_url"] = endpoint
    return api_call("POST", "/v2/mystery-shopper", payload, timeout=60)
Recommendation

Do not submit confidential endpoints, merchant data, wallet identifiers, or compliance questions unless you trust MerchantGuard’s handling of that data.

What this means

Anyone with access to that environment variable could use the configured MerchantGuard account privileges.

Why it was flagged

The skill uses an optional MerchantGuard API key as a bearer token for provider API calls. This is expected for the service, but it is sensitive account authority.

Skill content
API_KEY = os.environ.get("MERCHANTGUARD_API_KEY", "") ... HEADERS["Authorization"] = f"Bearer {API_KEY}"
Recommendation

Store the API key securely, use the least-privileged/free-tier key where possible, and revoke or rotate it if exposed.

What this means

A user following manual install instructions depends on the remote site and package repository serving the expected files.

Why it was flagged

The manual install path downloads code from a remote site and installs a dependency without hashes or lockfile pinning. This is user-directed setup, not automatic execution, but provenance and integrity are not strongly bounded.

Skill content
curl -LO https://merchantguard.ai/skills/guard/guard.py ... pip install requests
Recommendation

Prefer the registry-reviewed package when available, verify the source repository, and use pinned hashes or a lockfile for reproducible installs.