Back to skill

Security audit

Scout Commerce

Security checks across malware telemetry and agentic risk

Overview

This skill appears purpose-built for shopping and Solana swaps, but it can spend funds and stores transaction-authorizing credentials and shipping details in plaintext with limited safeguards.

Review before installing. Use this only with a low-balance wallet, confirm every buy or swap yourself, and treat credentials.json as a sensitive file containing both payment authority and shipping PII. Prefer environment variables or a secure secret store for the API key, avoid shared machines, and update or pin dependencies before relying on it for real funds.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Lp3

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding
The skill advertises and relies on capabilities such as network access and reading/writing local files, including persistent credential storage, but does not declare any permissions. That creates a transparency and governance gap: users or hosting platforms cannot accurately assess what the skill can access before enabling it, which increases the chance of overprivileged execution and unsafe deployment.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The documentation encourages buying products and swapping tokens but does not clearly and prominently warn that these are real financial and on-chain actions that can spend user funds. In an agent setting, this can lead to accidental purchases, token swaps, or irreversible blockchain transactions if a user or orchestrator assumes the actions are only informational or simulated.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The code writes API keys, wallet-related data, and user profile information to a plaintext credentials.json file on disk without encryption, permission hardening, or any user-facing notice. In a commerce and crypto-payment skill, local persistence of sensitive data increases the risk of credential theft, unauthorized purchases, and privacy exposure if the host is shared, backed up insecurely, or later compromised.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The function saves personally identifiable shipping data such as email, physical address, and optional phone number into credentials.json without any warning or confirmation. Because this skill is used for purchasing goods, the stored profile contains high-value PII that could be exposed through local file access, backups, logs, or source-control mistakes, enabling privacy violations or targeted fraud.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The script persists both an API key and shipping profile data to disk in credentials.json, which includes sensitive personal information and an authentication secret. Storing these values locally without an explicit warning at the write site, permission hardening, encryption, or secure storage increases the chance of credential theft or privacy exposure if the host is shared, compromised, or the file is accidentally committed.

Credential Access

High
Category
Privilege Escalation
Content
**List wallet tokens** → `python swap.py --list`

All commands run from `scripts/` folder. API key loads automatically from `credentials.json`.

## Setup (one-time)
Confidence
94% confidence
Finding
credentials.json

Credential Access

High
Category
Privilege Escalation
Content
def save_credentials(creds: dict) -> bool:
    """Save credentials to credentials.json file."""
    try:
        with open(CREDS_FILE, "w") as f:
            json.dump(creds, f, indent=2)
Confidence
94% confidence
Finding
credentials.json

Credential Access

High
Category
Privilege Escalation
Content
def save_shipping_profile(email: str, address: str, phone: str | None = None) -> bool:
    """
    Save shipping profile to credentials.json.
    
    Args:
        email: Email for order updates
Confidence
95% confidence
Finding
credentials.json

Unpinned Dependencies

Low
Category
Supply Chain
Content
x402[httpx,svm]>=2.0.0

# Solana - for wallet operations
solana>=0.34.0
solders>=0.21.0

# Utilities
Confidence
84% confidence
Finding
solana>=0.34.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
# Solana - for wallet operations
solana>=0.34.0
solders>=0.21.0

# Utilities
base58>=2.1.0
Confidence
84% confidence
Finding
solders>=0.21.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
solders>=0.21.0

# Utilities
base58>=2.1.0
Confidence
78% confidence
Finding
base58>=2.1.0

Known Vulnerable Dependency: x402==2.0.0 — 1 advisory(ies): GHSA-qr2g-p6q7-w82m (x402 SDK Security Advisory)

High
Category
Supply Chain
Confidence
97% confidence
Finding
x402==2.0.0

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.