T08 · Insecure Dependencies
- Location
SKILL.md:56- Finding
Unpinned Third-Party MCP Package Handles Wallet Secrets and Funds
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 56-62
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumComplete Code Snippet:
text - **MCP (recommended for OpenClaw)**: add the npm package `@pulsenetwork/mcp` as an MCP server. `pulse_discover` searches all endpoints free; `pulse_call` pays under hard local spend caps (defaults $0.50 per call, $5 per day; tune with `PULSEPAY_MAX_PER_CALL` and `PULSEPAY_MAX_PER_DAY`). Funding: on first run the server generates its own local wallet (kept at `~/.pulsepay/wallet.json`; back it up) and prints the address; send it a few dollars of USDC on Base. To use your own key instead, set the `PULSEPAY_EVM_KEY` environment secret in the MCP server config. Keys never go in chat.Technical Analysis
The Skill recommends installing and executing
@pulsenetwork/mcpwithout specifying an immutable package version, integrity hash, lockfile, or source-verification procedure. Package resolution may therefore select whichever release is current at installation time, meaning the executed implementation can differ from the dependency that was originally reviewed.This dependency is security-sensitive because it operates as an MCP server, generates and stores a funded wallet, performs paid calls, and may receive an EVM private key through
PULSEPAY_EVM_KEY. If the package registry account, publication pipeline, maintainer environment, or a future release is compromised, malicious package code would execute in the MCP server's local security context and could access secrets and wallet material available to that process.This finding identifies an unsafe supply-chain configuration rather than evidence that the named package is currently malicious.
Attack Path
- An attacker compromises the package's publication channel or causes a malicious release to become the version selected by an unpinned installation.
- An agent or use ...[truncated 1221 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@pulsenetwork/mcpto a specifically audited version rather than allowing mutable latest-version resolution. - Record and verify package integrity through a lockfile and registry integrity metadata; where practical, additionally verify signed release provenance.
- Document the authoritative package repository and compare published artifacts with reviewed source code before deployment.
- Run the MCP server in an isolated, least-privilege environment with restricted filesystem access, a minimal environment, and outbound network access limited to required destinations.
- Use a dedicated, low-balance wallet exclusively for this integration. Do not supply a general-purpose or high-value EVM key.
- Retain strict per-call and daily spending caps, and enforce transaction-level destination, asset, network, and amount allowlists outside the dependency where possible.
- Restrict permissions on
~/.pulsepay/wallet.json, avoid unnecessary backups containing plaintext wallet material, and ensure backups are encrypted and access-controlled. - Review dependency updates before changing the pinned version, including transitive dependencies, install scripts, release provenance, and relevant security advisories.
- Pin
