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

Content
View full analysis

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}'
text

### 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
View 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
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
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.

Content

Scanner excerpt · SKILL.md (reported line 49)May include surrounding context.

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?"}],

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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.