Back to skill

Security audit

Nara

Security checks for vulnerabilities and agentic risk

Overview

This Nara skill is not clearly malicious, but it asks an agent to run mutable crypto-wallet tooling, install a secondary skill, and perform some token-affecting actions with too-broad approval.

Review carefully before installing. Only use this skill for explicit Nara requests, pin and verify the naracli version before running it, inspect any AgentX skill contents before installation, and require explicit confirmation for every wallet creation, transaction, staking, unstaking, endpoint change, upload, delete, or social/account-binding action.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
Findings (4)

T08 · Insecure Dependencies

Error
Location
SKILL.md:15
Finding

Unpinned Third-Party Package Execution

Content
View full analysis
`). This installs code from the public npm registry — **before first install, the agent must inform the user** and obtain explicit approval. Users should review: [npm package](https://www.npmjs.com/package/naracli), [GitHub source](https://github.com/nara-chain/nara-cli) - **Security**: Open-source, auditable on GitHub. The package does not upload, collect, or transmit wallet secrets — all key material stays local on disk - Run `npx naracli help` and `npx naracli --help` to learn all available commands and options before use - **Updates**: Use `npx naracli@latest` to ensure the latest CLI version ``` ### Technical Analysis The Skill instructs the agent to execute a mutable npm package without pinning an exact reviewed version or verifying an integrity digest. Both `npm install -g naracli` and ordinary `npx naracli` resolve package content through the public npm registry. The explicit recommendation to use `npx naracli@latest` ensures that future, potentially unreviewed releases are executed. User approval informs the user that external code will run, but it does not establish that the registry artifact is identical to the reviewed GitHub source. It also does not protect against compromise of the npm package, maintainer account, release pipeline, or transitive dependencies. Because the CLI manages cryptocurrency wallets and transactions, it is likely to operate in a context where wallet files and other sensitive local data are accessible. The package implementation is not included in the audited artifact, so the statement that secrets remain local cannot be independently verified. ### Attack Path 1. An attacker compromises the npm package, a maintainer account, the release pipeli ...[truncated 1138 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:75
Finding

Remote Installation of an Unreviewed Secondary Skill

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:44
Finding

Automatic Token Staking Without Transaction-Specific Confirmation

Content
View full analysis
0, use `--stake auto` on `quest answer` to auto top-up. If you don't have enough NARA to stake, check `freeCredits` — if > 0, you can answer without staking. If `freeCredits` is 0, bind your Twitter and submit tweets to earn stake-free credits (see Step 3 in "How to Mine NARA for Free") 6. **Submit**: Always pass `--agent` and `--model`. **Prefer direct RPC over relay when you have balance**: - Balance >= 0.1 NARA: `npx naracli quest answer "" --agent --model ` (direct, **preferred**) - **Balance == 0 NARA: MUST use `--relay`** — do NOT attempt direct submission with zero balance ``` ### Technical Analysis The Skill treats staking and unstaking as operations that do not require confirmation once the user has generally approved a quest workflow. It also instructs the CLI to use `--stake auto`, allowing remote quest data to determine whether a financial state change is performed. A general request to participate in mining is not equivalent to informed authorization of each token-affecting transaction. The instructions do not require the agent to display the stake amount, network fee, destination program, lock-up conditions, withdrawal conditions, or total exposure immediately before execution. This conflicts with the Skill's earlier statement that signing transactions requires explicit confirmat ...[truncated 1093 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:116
Finding

Generic Financial Requests Are Redirected Into the Nara Ecosystem

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (27)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger list includes broad terms like wallet, balance, transfer, skills, agent, and reward-related words that are common in many benign conversations. That raises the risk of accidental invocation of a skill that can install npm code, create wallets, or initiate on-chain workflows in contexts where the user did not intend to use Nara.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The skill instructs the agent to execute npx naracli from the public npm registry without pinning an exact version. That allows silent code changes on future installs or first runs, turning the skill into a supply-chain execution path where newly published package contents could run with the user's local privileges.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

This duplicate reference still represents a true supply-chain risk because it normalizes dynamic execution from npm in a sensitive crypto context. The surrounding wallet and on-chain guidance increases severity, since the package may handle keys, files, and network operations on the same host.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

Telling users to use npx naracli help without version pinning still causes execution of registry-sourced code, even if the intent is only to view help. In practice, any invocation can run package lifecycle or entrypoint code, so this remains an arbitrary code execution and supply-chain exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The same line also instructs npx naracli wallet create without version pinning, which is more sensitive because it creates key material and writes wallet files. Executing unreviewed or mutable package code at the moment of wallet generation creates risk of secret theft, backdoored wallet creation, or malicious file handling.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The skill says to use default endpoints shown by npx naracli quest answer --help, which still executes unpinned package code from npm. Although the command seems informational, it remains a supply-chain execution vector and conditions users to trust mutable package output for security-relevant defaults.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
91% confidence
Finding

The skill explicitly marks several actions as safe to run without confirmation, including read-only wallet and config queries and even quest submissions and staking/unstaking after a broad prior approval. In a wallet and on-chain context, this grants the agent material autonomy to execute code, access blockchain state, and perform financially relevant operations based on ambiguous workflow approval rather than per-action consent.

Content

Scanner excerpt · SKILL.md (reported line 44)May include surrounding context.

md
- When running wallet create/import commands, do NOT capture or parse CLI stdout/stderr — only confirm success or report the error message. The CLI writes key material directly to a file, never to stdout
- Only use default RPC/relay endpoints (shown in `npx naracli quest answer --help`); warn if the user provides a custom URL

**Safe to run without confirmation:**
- Read-only queries (address, balance, quest get, skills get, agent get, config get, zkid info, tx-status)
- Quest answer submission (after user has explicitly requested mining/quest workflow)
- Staking/unstaking as part of an approved quest workflow

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The explicit wallet creation step uses unpinned npx naracli wallet create, making key generation dependent on mutable upstream code. In a blockchain wallet context, this is especially dangerous because a compromised package could exfiltrate mnemonics, alter generated keys, or store secrets insecurely.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Agent registration is invoked through unpinned npx naracli, again exposing users to arbitrary code execution from npm. Because this command interacts with on-chain identity and relays, a malicious package could tamper with registration parameters, submit unexpected transactions, or collect metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The Twitter bind helper command is unpinned and can execute mutable package code. While not directly a wallet secret operation, it drives social-account binding and could mislead users, alter instructions, or collect unnecessary local/network data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The actual bind command uses unpinned npx naracli, allowing a compromised package to perform unauthorized network actions or manipulate the relay submission. In a crypto/social identity linkage flow, that can lead to account binding abuse or deceptive transaction behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

Installing the AgentX skill via unpinned npx naracli skills add agentx chains one remote package execution into further content installation. This compounds supply-chain risk because the primary CLI and the fetched skill content may both change over time.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Quest submission through unpinned npx naracli quest answer combines supply-chain execution with transaction-like activity. A malicious or swapped package could alter answers, endpoints, signing flow, or submission parameters in a way that costs funds or leaks operational data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The token balance example is another unpinned executable invocation from npm. Although read-only in purpose, it still runs full package code and therefore remains a real supply-chain risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

Using unpinned npx naracli agent get for points and referral checks is still a true vulnerability because the execution model trusts mutable upstream code. The impact is lower than wallet creation or transfers, but compromise still enables arbitrary code execution and data access on the host.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

The model-api.nara.build/402 reference is not itself an npx naracli execution and the static match appears to be overinclusive or context-misaligned. As a result, this specific RP1 instance is likely a false positive rather than a real unpinned-package execution issue.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The wallet check step begins the automated workflow with unpinned npx naracli address, and the same section escalates into wallet creation and repeated execution loops. In context, this acts as a gateway to repeated trust in mutable package code for crypto operations, increasing overall exposure.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The quest workflow activation clause maps ambiguous phrases like airdrop, claim, earn, mining, faucet, and reward to an automated crypto workflow. Because these terms are high-collision across unrelated domains, the skill could activate unexpectedly and steer an agent into wallet checks, package execution, and transaction-like actions without clear user intent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This duplicate instance at the same line remains a true vulnerability for the same reason: unpinned execution controls security-relevant endpoint discovery. In a signing/submission workflow, endpoint manipulation can redirect traffic or metadata to attacker infrastructure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

npx naracli config get is a read-only command, but it still runs unpinned registry code and therefore preserves the core supply-chain threat. A compromised package could misreport settings or perform unrelated malicious actions under the guise of a config read.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx naracli config set changes operational settings and is unpinned, so malicious upstream code could modify configuration beyond what the user intended. This can persist attacker-chosen endpoints or unsafe defaults, affecting later wallet and transaction actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

npx naracli config reset is also an unpinned executable call from npm. While lower impact than wallet creation, a malicious package could use the reset action as cover for arbitrary code execution or unexpected persistent changes.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The AgentX skill installation command again combines unpinned CLI execution with downstream skill installation. This increases attack surface because the user is encouraged to trust a mutable tool to fetch and activate additional content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.