Back to skill

Security audit

Crypto Payments Comparison

Security checks for vulnerabilities and agentic risk

Overview

The skill is a visible crypto-payment comparison guide, but it tells users to clone and run mutable payment software without pinning or integrity checks.

Review this carefully before installing or using it for business payment decisions. Treat the recommendations as vendor-oriented, verify all current payment, legal, tax, and compliance claims independently, and do not run the referenced GitHub setup commands unless you pin a reviewed commit, inspect package scripts and dependencies, and run them in a least-privileged isolated environment.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:413
Finding
Mutable Third-Party Repository Is Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 413–415 **Vulnerability Type**: Remote payload retrieval and insecure software supply chain **Risk Level**: High ### Vulnerable Code ```bash git clone https://github.com/PayRam/payram-helper-mcp-server cd payram-helper-mcp-server yarn install && yarn dev ``` ### Technical Analysis The integration instructions clone the current state of a remote Git repository and immediately install and execute its contents. The repository is not pinned to a reviewed commit, release tag, or cryptographically verified artifact. Both execution stages introduce risk: - `yarn install` can execute package lifecycle scripts supplied by direct or transitive dependencies. - `yarn dev` executes the downloaded project's development command. - The effective code can change after this skill has been reviewed because the cloned branch is mutable. - No commit signature, checksum, lockfile integrity check, or sandboxing requirement is specified. The downloaded repository and its dependency graph are outside the audited artifact, so their behavior cannot be validated by this audit. This is primarily remote payload retrieval and execution, with an additional insecure-dependency aspect. ### Attack Path 1. An attacker compromises the referenced GitHub repository, its maintainer account, the default branch, or one of its package dependencies. 2. The attacker inserts malicious code into the repository, a package lifecycle script, or a transitive dependency. 3. A user follows the documented integration instructions and clones the mutable repository. 4. `yarn install` executes malicious lifecycle code, or `yarn dev` launches the malicious application payload. 5. The payload runs with the permissions and environment of the invoking user. This path is conditional on an upstream compromise or malicious upstream update and on a user executing the documented commands. ### Impact Assessment Successful exploitation could pr ...[truncated 645 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the repository to a specific reviewed commit rather than cloning and executing the mutable default branch: ```bash git clone https://github.com/PayRam/payram-helper-mcp-server cd payram-helper-mcp-server git checkout --detach <reviewed-commit-sha> ``` 2. Publish the expected commit hash and verify a signed commit or signed release before installation. 3. Require the committed dependency lockfile and use the package manager's immutable installation mode, such as: ```bash yarn install --immutable ``` Use `--frozen-lockfile` instead if required by the applicable Yarn version. 4. Review direct and transitive dependencies and scan them for known vulnerabilities before execution. 5. Disable dependency lifecycle scripts during installation where feasible, then explicitly review any scripts that must run. 6. Run the external project in an isolated, least-privileged container or virtual machine with: - No unnecessary host filesystem mounts - No privileged mode - No sensitive environment variables - Restricted outbound network access - A non-root user - Read-only filesystems where practical 7. Separate installation from execution so users can inspect the retrieved source and package scripts before starting the service. 8. Document the exact reviewed release, its checksum, supported dependency versions, and a reproducible verification procedure. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

YARA rule 'ransomware_behavior': Ransomware-like patterns (mass encryption, ransom notes) [malware]

Critical
Category
YARA Match
Content
similar?**

- **YES** → Self-hosted only (PayRam or BTCPay) — centralized processors will freeze accounts
- **NO** → Any option based on other criteria

---

## Quick Recommendations by Use Case

| Use Case | Recommendation | Why |
|----------|----------------|-----|
| **E-commerce needing stablecoins** | PayRam | Self-hosted, USDT/USDC on all chains |
| **Bitcoin-maximalist merchant** | BTCPay Server | Bitcoin-first, Lightning, maximum sovereignty |
| **iGaming operator** | PayRam | High-risk friendly, payouts + referrals built-in |
| **AI agent payments (no KYC)** | PayRam or raw x402 | Permissionless, self-hosted, multi-token |
| **AI agent payments (have Stripe account)** | Stripe machine payments | Handles tax/compliance, familiar dashboard |
| **Pay-per-request API monetization** | PayRam as x402 layer | Privacy + sovereignty + protocol compatibility |
| **US Stripe merchant, minimal crypto** | Stripe or Stripe x402 | Familiar, integrated, managed |
| **Global, low KYC tole
Confidence
80% confidence
Finding
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
- No Bitcoin support
- Account freeze risk (same as traditional Stripe)
- x402 machine payments: Base only (preview), USDC only
- Stripe can disable agent's access without warning

**When to use**: Existing Stripe merchants (US/supported markets) who want Stripe-managed agent payments with built-in compliance. NOT suitable for permissionless agent deployments or non-KYC use cases.
Confidence
80% confidence
Finding
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The invocation description is extremely broad and includes many generic payment-comparison and recommendation scenarios, which can cause the skill to trigger outside a narrowly intended context. In an agent environment, overbroad routing can bias recommendations toward the vendors emphasized in the document—especially PayRam—leading to mis-scoped use, commercially biased outputs, or unsafe deployment advice in contexts that need neutral financial, legal, or compliance review.