Back to skill

Security audit

XRPL Transaction Builder

Security checks for vulnerabilities and agentic risk

Overview

This XRPL transaction skill is coherent, but it handles real blockchain transactions without enough safety scoping and includes a likely incorrect transaction example.

Review this skill carefully before installing or using it for real wallets. Prefer testnet/devnet while developing, pin and audit the `xrpl` dependency, independently verify every transaction type and field against XRPL documentation, and never submit a signed transaction until the destination, amount, network, fees, and full transaction contents are confirmed.

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:8
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 8–12 **Vulnerability Type**: Unpinned npm dependency **Risk Level**: Medium ```markdown ## Setup ```bash npm install xrpl ``` ``` ### Technical Analysis The setup instructions install the `xrpl` package without specifying an exact, reviewed version. No lockfile is present in the audited project. The command therefore resolves a mutable package version and dependency graph at installation time, making installations non-reproducible. This practice creates supply-chain exposure: a compromised future release, registry account, transitive dependency, or package artifact could introduce malicious installation or runtime behavior after the skill has already been reviewed. This finding does not establish that the current `xrpl` package is malicious; it identifies the unsafe dependency-resolution practice. ### Attack Path 1. An attacker compromises a future `xrpl` release, its publishing account, or a transitive dependency. 2. The user follows the documented `npm install xrpl` instruction. 3. npm resolves and downloads the mutable package version and its dependency graph. 4. Malicious package lifecycle code may execute during installation, or malicious runtime code may execute when the package is imported. 5. The code runs with the privileges of the user or process performing the installation or using the package. ### Impact Assessment Successful exploitation could allow arbitrary code execution with the installing user's privileges. Depending on the execution environment, this may expose source code, environment variables, wallet-related data, credentials, or other files accessible to that user. It could also alter transaction construction or submission behavior. The scope is limited by the privileges and isolation controls of the npm installation and runtime environment.
Remediation
## Remediation Suggestions - Pin `xrpl` to an exact, reviewed version rather than relying on npm's mutable latest resolution. - Add and commit a package manifest and lockfile, then use `npm ci` for reproducible installation. - Review and retain lockfile integrity hashes. - Audit direct and transitive dependencies before release and after dependency updates. - Evaluate package lifecycle scripts and disable them during installation where operationally feasible, such as with `npm ci --ignore-scripts`. - Perform dependency installation and transaction processing in a least-privileged, isolated environment. - Establish a controlled update process that includes source review, security testing, and explicit approval of new dependency versions.
Vulnerability Patterns
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill shows how to submit signed XRPL transactions without warning that submission broadcasts a live ledger action that may be financially consequential and irreversible. In a blockchain transaction-building context, omission of this warning increases the chance that users will submit unintended payments or asset operations to mainnet.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
The skill documents an invalid XRPL transaction type, `SetAccountRoot`, while presenting fields associated with account-setting behavior. Users relying on this example may construct malformed transactions or misunderstand ledger operations, which can lead to failed submissions, incorrect implementations, or accidental misuse in systems that handle real assets.

Static analysis

No suspicious patterns detected.