Back to skill

Security audit

vultisig-sdk

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Vultisig wallet helper, but it defaults agents toward autonomous crypto transactions and seed-handling flows without enough built-in scoping or confirmation safeguards.

Review this carefully before installing. Use it only with explicit transaction limits, recipient verification, human approval for meaningful value, pinned and audited SDK versions, and strict handling rules for passwords, vault backups, and any seedphrases. Start with test wallets or low-value accounts.

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:27
Finding
Unpinned Third-Party SDK Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md:27` and `SKILL.md:511` **Vulnerability Type**: Unpinned npm dependency installation **Risk Level**: Medium ### Vulnerable Code At `SKILL.md:27`: ```bash npm install @vultisig/sdk ``` At `SKILL.md:511`: ```bash npm install -g @vultisig/sdk ``` ### Technical Analysis The Skill instructs agents to install `@vultisig/sdk` without specifying an exact, reviewed version or integrity-protected lockfile. Consequently, installation resolves to whichever package version and dependency graph the npm registry serves at execution time. This is particularly sensitive because the package is subsequently trusted to process wallet passwords, mnemonic phrases, vault shares, signing payloads, recipient addresses, and cryptocurrency transactions. A compromised package release, maintainer account, transitive dependency, or registry response could introduce malicious installation or runtime behavior after the Skill itself has been audited. The global installation command increases exposure by placing package executables in a system-wide npm prefix. Depending on the environment and permissions used, those executables may become available to other users or sessions. The audit did not establish that the current package is malicious; the vulnerability is the mutable and insufficiently verified dependency acquisition process. ### Attack Path 1. An attacker compromises the npm package, a maintainer account, or a transitive dependency and publishes a malicious release. 2. An agent follows the documented unpinned `npm install` command. 3. npm resolves and installs the attacker-controlled release or dependency. 4. Malicious lifecycle or runtime code executes with the permissions of the installing agent. 5. When the agent creates or imports a vault, the compromised SDK can intercept sensitive wallet inputs, alter recipient addresses or transaction payloads, manipulate signing operations, ...[truncated 1432 chars]
Remediation
## Remediation Suggestions 1. Replace unversioned installation instructions with an exact, reviewed SDK version, for example: ```bash npm install --save-exact @vultisig/sdk@<reviewed-version> ``` 2. Commit a lockfile and use `npm ci` in automated environments so the complete dependency graph is reproducible and integrity hashes are enforced. 3. Remove the global installation recommendation. Prefer project-local binaries invoked through package scripts or `npx --no-install`. 4. Verify package provenance, publisher identity, signatures or attestations where available, and npm integrity metadata before deployment. 5. Audit both the direct SDK package and its resolved transitive dependencies before allowing access to mnemonic phrases, vault shares, passwords, or funded wallets. 6. Install and run the SDK under a dedicated, unprivileged account or sandbox with restricted filesystem and network access. Do not use administrator or root privileges for package installation. 7. Apply outbound-network allowlisting so the SDK can communicate only with documented Vultisig, blockchain RPC, indexer, and swap-provider endpoints. 8. Use test wallets and low-value transaction limits until each dependency update has been independently reviewed. Require human approval for high-value transfers. 9. Document the SDK's sensitive-data flow, including whether mnemonic phrases are processed exclusively on-device and exactly which vault material is sent to VultiServer.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (3)

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill advertises fully autonomous wallet creation and transaction execution across many chains without a prominent upfront warning that transfers and swaps are irreversible and can cause immediate financial loss. In this context, the absence of strong safety messaging and mandatory confirmation boundaries materially increases the risk of accidental or unauthorized asset movement by an agent.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The invocation description is extremely broad and authorizes the skill for nearly any wallet or on-chain activity, including high-risk actions like transaction sending and token swaps. In an agent setting, such loose routing increases the chance the skill is auto-selected for ambiguous prompts and performs financial operations without sufficient policy checks or scoped user consent.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The skill presents a simplified security claim of 'No seed phrases' while elsewhere documenting seedphrase import and validation flows. That inconsistency can mislead agents or operators into underestimating seed-handling risk, causing sensitive mnemonics to be requested, processed, or stored in contexts that were assumed seedless.

Static analysis

No suspicious patterns detected.