Back to skill

Security audit

cpbox-answers

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to do what it says, but it sends prompts to a paid external service and recommends an unpinned payment helper that can run third-party code.

Install only if you are comfortable sending prompt content to the listed external service and using an automatic paid x402 flow. Prefer a pinned, reviewed version of the payment helper, run it with minimal local access, and set explicit payment limits or confirmation steps before use.

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:85
Finding
Unpinned Third-Party Package Execution Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 85–94 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```markdown ## Using with x402-payment ### CLI (AI Agent) ```bash npx @springmint/x402-payment \ --url https://www.cpbox.io/api/x402/answers \ --method POST \ --input '{"messages":[{"role":"user","content":"How does the James Webb Space Telescope work?"}],"model":"default","stream":false}' ``` ``` ### Technical Analysis The documented command invokes `@springmint/x402-payment` through `npx` without specifying an exact package version or enforcing an integrity hash. If the package is not already installed locally, `npx` can retrieve and immediately execute a package release from the configured npm registry. This creates a supply-chain trust boundary in which the executed implementation can change after the Skill has been reviewed. Compromise of the package publisher account, registry resolution, or a future package release could cause attacker-controlled code to run when an agent follows the documented integration procedure. The risk is elevated because the package is expected to handle an x402 payment handshake and EIP-712 signing. ### Attack Path 1. An attacker compromises the upstream package, its publisher account, or the dependency publication process. 2. A malicious version of `@springmint/x402-payment` is published or otherwise resolved by the runtime. 3. An agent follows `SKILL.md` and executes the unversioned `npx @springmint/x402-payment` command. 4. `npx` downloads and runs the attacker-controlled package with the invoking process's operating-system privileges. 5. The malicious package can inspect accessible environment data and payment-related material, manipulate API requests or payment destinations, and perform other actions permitted to the process. ### Impact Assessment Successful exploitation can provide ar ...[truncated 555 chars]
Remediation
## Remediation Suggestions 1. Pin the package to a specifically reviewed version, such as `@springmint/x402-payment@X.Y.Z`, rather than resolving the latest available release. 2. Install dependencies through a committed lockfile containing registry URLs and integrity metadata, and use a deterministic installation command such as `npm ci`. 3. Verify package provenance, publisher identity, release signatures, and integrity before approving upgrades. 4. Avoid automatic download-and-execute behavior in production. Prefer a separately reviewed installation stage followed by execution of the pinned local binary. 5. Run the payment client in a restricted environment with minimal filesystem access, filtered network egress, sanitized environment variables, and no unrelated credentials. 6. Scope payment and EIP-712 signing authorization to the expected domain, contract, network, amount, and request. Require explicit confirmation for values outside defined limits. 7. Monitor dependency advisories and review all version changes before updating the approved package.
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 (4)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill clearly routes prompts to external third-party services and uses an automatic x402 payment flow, but the documentation does not prominently warn that user prompts/content leave the local environment and may trigger paid charges automatically. This can lead to unintended disclosure of sensitive data and unexpected billing, especially in agentic or streaming use where payment handling is described as automatic.

External Transmission

Medium
Category
Data Exfiltration
Content
### Blocking (Single-Search)
```bash
curl -X POST "https://www.cpbox.io/api/x402/answers" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [{"role": "user", "content": "How does the James Webb Space Telescope work?"}],
Confidence
88% confidence
Finding
The skill instructs clients to POST user-supplied messages to an external domain, which constitutes external data transmission. In this skill's context that behavior is expected, but it remains security-relevant because prompts may contain secrets, regulated data, or proprietary content, and the skill does not pair the example with a strong data-handling warning.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding
The documentation instructs users to execute an unpinned package via npx, which fetches the latest published version at runtime. If the upstream package is compromised, typosquatted, or updated with malicious code, users could execute attacker-controlled code in their environment.

Natural-Language Policy Violations

Low
Confidence
87% confidence
Finding
The parameters table defines `language` with a default of `"en"`, which establishes a language preference in the skill documentation without indicating user choice or opt-in. This can conflict with language/locale policy expectations when a skill should not force a specific language by default.

Static analysis

No suspicious patterns detected.