StablePay OpenClaw Plugin

Security checks across malware telemetry and agentic risk

Overview

This appears to be a real StablePay wallet/payment plugin, but it grants broad wallet-signing and payment authority that users should review carefully before enabling.

Install only if you intend to give OpenClaw wallet-signing and StablePay payment capabilities. Use trusted backends, keep auto-payment thresholds minimal, protect the master key and OWS credentials, and require manual approval for raw signing or payment execution.

VirusTotal

VirusTotal engine telemetry is currently stale for this artifact.

View on VirusTotal

Risk analysis

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.

#
ASI02: Tool Misuse and Exploitation
High
What this means

If enabled with an auto-purchase threshold, the agent may be able to sign and submit StablePay payments within that limit.

Why it was flagged

When the amount is at or below the stored auto-purchase threshold, the demo flow signs and submits a payment without showing an additional confirmation step in the artifacts.

Skill content
if (amount > status.payment_config.autoPurchaseThresholdUsdc) { ... return; } ... const paymentSignature = await runtime.signMessage({ ... }); ... const payResponse = await client.paySigned(payPayload, { ... });
Recommendation

Keep auto-purchase thresholds low or zero, require explicit user approval for payment tools, and restrict tool access to trusted tasks/backends.

#
ASI03: Identity and Privilege Abuse
High
What this means

A model or user with access to this tool could obtain valid wallet signatures for messages beyond a specific payment transaction.

Why it was flagged

The runtime signs caller-provided message content directly using the configured wallet, OWS CLI, OWS REST, or local private key, rather than limiting signatures to a narrow payment-policy payload.

Skill content
const payload = append ? `${params.message}${timestamp}${nonce}` : params.message; ... signature = signWithOwsCli(state.walletName, params.chain ?? "solana", payload); ... const raw = crypto.sign(null, Buffer.from(payload, "utf8"), state.localDevPrivateKeyPem);
Recommendation

Limit raw signing to trusted users, add explicit approval for every signature, and prefer a constrained payment-signing tool that validates recipient, amount, currency, and purpose.

#
ASI05: Unexpected Code Execution
Low
What this means

The plugin may run the local OWS executable when configured for OWS CLI signing.

Why it was flagged

The plugin intentionally supports invoking the local OWS CLI for signing; this is disclosed and aligned with the wallet-signing purpose.

Skill content
`ows sign message --wallet <name> --chain solana --message '<canonical>' --json`
Recommendation

Install OWS only from trusted sources and verify the configured wallet and PATH before using the CLI signing runtime.

#
ASI06: Memory and Context Poisoning
Medium
What this means

Local wallet material and payment policy data persist on disk and could be exposed if the master key or local machine is compromised.

Why it was flagged

The plugin stores persistent encrypted wallet state locally and depends on a master-key environment variable to protect it.

Skill content
The plugin will use a local AES-256-GCM encrypted state file as the current development fallback ... Set `STABLEPAY_PLUGIN_MASTER_KEY` before using the local wallet runtime.
Recommendation

Use a strong unique master key, protect the local state file, avoid local-dev custody for production funds, and remove the state file when no longer needed.