Back to skill

Security audit

Build apps with Bitcoin and Stablecoins on Arkade

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Arkade SDK guide, but it includes live fund-moving Bitcoin, Lightning, and stablecoin examples without enough safety scoping for irreversible financial actions.

Review this skill carefully before using it with real funds. Prefer testnet, signet, mutinynet, or regtest first; pin and review dependency versions; never paste real private keys into example code; and require explicit amount, network, token, fee, and destination-address checks before authorizing sends, offboards, Lightning payments, or swaps.

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:28
Finding
Security-Critical npm Dependencies Are Installed Without Version Pinning## Vulnerability Details **File Location**: `SKILL.md`, lines 28, 143, 187, and 277 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:28` ```bash npm install @arkade-os/sdk ``` `SKILL.md:143` ```bash npm install @arkade-os/boltz-swap ``` `SKILL.md:187` ```bash npm install @arkade-os/skill ``` `SKILL.md:277` ```bash npm install @arkade-os/sdk @scure/base ``` ### Technical Analysis The installation instructions do not pin the npm dependencies to exact, reviewed versions. No lockfile, package integrity hashes, trusted registry configuration, or package-verification procedure is included in the audited project. Consequently, the code installed by these commands may differ from the code that was originally reviewed or expected when the Skill was authored. This is security-sensitive because the referenced libraries operate on Bitcoin wallet identities, transaction signing, Lightning swaps, and stablecoin swaps. The examples pass an identity derived from private key material into the SDK: ```typescript const identity = SingleKey.fromHex("your-private-key-hex"); ``` A compromised or unexpectedly changed dependency could therefore execute during installation through npm lifecycle scripts or at runtime with access to wallet objects and signing operations. The audit did not establish that any referenced package is currently malicious; the vulnerability is the mutable and unverifiable dependency trust boundary. ### Attack Path 1. An attacker compromises a maintainer account, npm package release process, or another component in the dependency chain. 2. The attacker publishes a malicious or backdoored release under one of the referenced package names. 3. A user follows the documented unpinned `npm install` command. 4. npm resolves the mutable package version and downloads the compromised release. 5. Malicious code executes through an installa ...[truncated 1181 chars]
Remediation
## Remediation Suggestions 1. Pin every dependency to an exact, reviewed version rather than allowing npm to select a mutable release. 2. Provide and commit a lockfile containing npm integrity hashes, and direct users and CI systems to use `npm ci`. 3. Review the complete transitive dependency graph and repeat the review before upgrading any package. 4. Configure npm to use an explicitly trusted registry and consider organization-level package allowlists. 5. Disable installation lifecycle scripts where compatible, such as with `npm ci --ignore-scripts`, or explicitly review every required lifecycle script. 6. Use automated dependency monitoring, provenance verification, and package-signature or attestation checks where available. 7. Run wallet applications in a least-privilege, isolated environment with restricted filesystem and network access. 8. Keep raw private keys outside general application memory where possible. Use a hardware wallet, external signer, or dedicated secrets-management system with transaction-policy enforcement. 9. Independently verify destination addresses, networks, amounts, and fee parameters before authorizing financial transactions. 10. Include the implementation and dependency metadata for `@arkade-os/skill` in the review scope before recommending it for production use.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Missing User Warnings

High
Confidence
97% confidence
Finding
The offboard example documents that the amount parameter is optional and defaults to all available funds, but it does not prominently warn users that omitting amount may drain the wallet's spendable balance to the destination address. In a financial SDK guide, a silent full-balance default is especially dangerous because a copied example or minor modification can cause unintended irreversible fund movement.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The examples show code that can send Bitcoin and Lightning payments against live network endpoints, but they do not clearly warn that these operations may move real funds and are generally irreversible. In a developer skill, users may copy-paste snippets directly into production or mainnet contexts, increasing the chance of accidental loss from misuse or testing with real assets.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The stablecoin swap section includes quote, execute, status, and claim flows involving real assets across chains, but it lacks warnings about irreversible transfers, wrong destination addresses, and chain/token mismatches. Cross-chain swap operations are error-prone, and a user who copies these examples without validation could permanently lose funds or send assets to an unusable address.

Static analysis

No suspicious patterns detected.