Back to skill

Security audit

cpbox-videos-search

Security checks for vulnerabilities and agentic risk

Overview

This video-search skill is mostly coherent, but it routes searches through a paid external service and tells users to run an unpinned payment helper package.

Review this before installing if you do not want automatic paid searches or external transmission of video-search queries. Prefer a pinned and verified version of the payment helper, confirm wallet/payment limits, and avoid sensitive search terms unless you accept the provider data flow.

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:54
Finding

Unpinned Third-Party Package Execution Through npx

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 12, 31, and 54–57
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: Medium

The skill directs users to execute an externally maintained npm package without specifying an exact version, integrity hash, lockfile, or other immutable verification mechanism.

Vulnerable code snippet:

markdown
> **Prerequisites**: This skill requires x402-payment. Complete the [setup steps](https://github.com/springmint/cpbox-skills#prerequisites) before first use.
markdown
With `@springmint/x402-payment` or `x402-sdk-go`, payment is **automatic**.
bash
npx @springmint/x402-payment \
  --url "https://www.cpbox.io/api/x402/videos-search?q=python+tutorial&count=20" \
  --method GET

Technical Analysis

Running npx @springmint/x402-payment without an exact version can cause npm to retrieve and execute the package version currently resolved by the registry. The effective executable code can therefore change after this skill has been reviewed.

The repository does not provide the package source, a lockfile, an integrity digest, a verified local wrapper, or provenance information with which users can validate the downloaded executable. Security-critical setup instructions are also hosted externally and may change independently of the reviewed SKILL.md.

This is particularly sensitive because the package is intended to participate in an automatic x402 payment flow and may interact with locally configured wallet or signing facilities. No malicious behavior by the current package is established; exploitation depends on compromise or unsafe modification of the external package, registry distribution path, or referenced setup instructions.

Attack Path

  1. An attacker compromises the npm package, its publisher account, the package distribution path, or another dependency loaded by the package.
  2. The attacker publi ...[truncated 1625 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the dependency to a reviewed, exact version, for example @springmint/x402-payment@X.Y.Z, rather than allowing npm to resolve the latest release.
  2. Publish and verify an integrity digest or signed provenance record for the approved package artifact.
  3. Include a lockfile or a locally reviewed wrapper so direct and transitive dependency versions are reproducible.
  4. Prefer installation with lockfile enforcement and lifecycle-script restrictions where compatible, rather than executing an unreviewed package directly through npx.
  5. Vendor or snapshot security-critical setup instructions in the repository so their reviewed content cannot change through an external link.
  6. Document the exact wallet permissions required and enforce least privilege, explicit confirmation for every payment or signature, spending limits, destination validation, and isolation from unrelated wallet assets.
  7. Run the payment helper in a restricted environment with minimal filesystem access, sanitized environment variables, constrained network access, and no unnecessary credentials.
  8. Establish a dependency update process requiring source review, provenance verification, security scanning, and controlled testing before changing the pinned version.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The activation description USE FOR video search is broad enough that an agent may invoke this skill for many ordinary user requests involving videos without clearly signaling that queries will be sent to an external paid service. Over-broad routing increases the chance of unnecessary data disclosure and unintended billable actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Although the file mentions a paid proxy and prerequisites, it does not clearly warn that user search terms are transmitted to external domains and may incur payment. Users or calling agents may therefore send sensitive queries off-platform without informed consent, creating privacy and cost risks.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The documentation instructs users to run npx @springmint/x402-payment without pinning an exact package version. This can cause execution of newly published or compromised package code at runtime, creating a supply-chain risk on the user's machine, especially because the tool participates in payment signing flows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The parameter table sets default values of country=US, search_lang=en, and ui_lang=en-US, which can steer behavior toward a specific locale. The document does not explicitly offer a user opt-in for these defaults or explain a justified region-specific requirement.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.