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

Content
View full analysis

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

Content

No source excerpt is available for this finding.

Missing User Warnings

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

Content

No source excerpt is available for this finding.

Missing User Warnings

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

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.