Back to skill

Security audit

cpbox-local-pois

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent paid local business lookup guide, but it asks users to run an unpinned payment client in a wallet-backed flow and sends optional precise location data without enough privacy or payment-safety guidance.

Review before installing. Use a pinned, reviewed version of the payment client, prefer a low-value dedicated wallet, confirm payment details before signing, and avoid sending exact coordinates unless needed; reduce coordinate precision when approximate distance is enough.

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

Warning
Location
SKILL.md:78
Finding
Unpinned Third-Party Payment Client Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 11 and 78-80 **Vulnerability Type**: Unpinned executable dependency in a wallet-backed payment flow **Risk Level**: Medium ### Vulnerable Code ```markdown > **Prerequisites**: This skill requires x402-payment. Complete the [setup steps](https://github.com/springmint/cpbox-skills#prerequisites) before first use. ``` ```bash npx @springmint/x402-payment \ --url "https://www.cpbox.io/api/x402/local-pois?ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA%3D" \ --method GET ``` ### Technical Analysis The documented `npx` command does not specify an exact version of `@springmint/x402-payment`. If the package is not installed locally, `npx` can retrieve and execute the version currently resolved by the npm registry. Consequently, the code executed by users can change after this Skill has been reviewed. The prerequisite instructions are also delegated to a mutable external GitHub page rather than included in the audited artifact. Changes to that page could direct users to install different software or use unsafe installation procedures. This dependency operates in an x402 payment workflow described as automatically signing payment requests. Although no malicious package behavior was identified in the audited project, executing an unpinned dependency in a wallet-backed context creates a significant supply-chain trust boundary. ### Attack Path 1. An attacker compromises the npm publisher account, package distribution channel, registry resolution path, or externally hosted setup instructions. 2. The attacker publishes or directs the user to a modified payment client. 3. A user follows `SKILL.md` and runs the unversioned `npx @springmint/x402-payment` command or the altered setup procedure. 4. The modified third-party code executes with the user's operating-system privileges. 5. The code may inspect locally accessible wallet material, alter payment parameters, redirect transactions, or perform other ...[truncated 919 chars]
Remediation
## Remediation Suggestions 1. Pin the payment client to a reviewed exact version, for example: ```bash npx --yes @springmint/x402-payment@X.Y.Z \ --url "https://www.cpbox.io/api/x402/local-pois?ids=..." \ --method GET ``` 2. Record and verify package integrity using a lockfile and npm integrity hashes. Avoid relying on mutable tags such as `latest`. 3. Include auditable prerequisite instructions directly in the Skill rather than relying exclusively on externally mutable setup documentation. 4. Review the pinned package and its transitive dependencies before deployment. Re-audit them before upgrading. 5. Run the payment client in an isolated environment with minimal filesystem, environment-variable, and network access. 6. Use a dedicated low-value wallet with limited funds and permissions rather than a primary wallet. 7. Require explicit user confirmation of the payment network, asset, recipient, amount, and spending limit before any signature is produced. 8. Consider installing the reviewed package ahead of time with a locked dependency tree instead of permitting on-demand package retrieval during Skill execution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding
The documentation instructs users to run `npx @springmint/x402-payment` without pinning an exact version. Because `npx` fetches the latest package at execution time, a compromised upstream package, malicious update, or dependency hijack could cause users to run unintended code locally with their wallet/payment context.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill explicitly documents sending precise latitude and longitude headers to a third-party API for distance calculation, but it does not clearly warn about the privacy sensitivity of exact location data. This can expose a user's real-time whereabouts to the API provider and facilitator, especially when combined with search terms, POI lookups, timestamps, and payment metadata.

Static analysis

No suspicious patterns detected.