Back to skill

Security audit

Nova

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent and safety-focused, but it asks users to run an unpinned third-party wallet CLI that can move funds and handle wallet secrets.

Review the nova CLI package and publisher trust before installing. Prefer a pinned, reviewed version instead of bare npm install or npx, avoid global installation where possible, use dry runs first, and require explicit confirmation before any send, withdrawal, export, import, or network change involving real funds.

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 (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:10
Finding
Unpinned Third-Party Wallet Package Installation and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 10–17 **Vulnerability Type**: Unpinned npm dependency and direct remote package execution **Risk Level**: Medium ### Vulnerable Code ```bash npm install @mynthai/nova ``` ```text Or run without installing via npx (replace all `nova` usage with `npx @mynthai/nova`) ``` ### Technical Analysis The Skill instructs the Agent to install or execute `@mynthai/nova` without specifying an exact package version, lockfile, integrity hash, or signature. Consequently, npm resolves a mutable registry version at execution time rather than a version whose contents were available during this audit. The `npx @mynthai/nova` alternative is particularly sensitive because it can download and immediately execute remotely supplied package code. npm installation lifecycle scripts may also execute unless separately disabled. Although the documented npm package and GitHub project identities appear consistent, the dependency implementation is not included in this project and could not be reviewed. This is especially security-sensitive because the package operates a cryptocurrency wallet, handles authentication, accesses wallet state, can expose key material through export operations, and can authorize irreversible financial transactions. ### Attack Path 1. An attacker compromises the npm publisher account, registry distribution path, or another component of the package’s release pipeline. 2. The attacker publishes a malicious version under the legitimate package name. 3. An Agent follows the Skill instructions and runs the unpinned `npm install` or `npx` command. 4. npm resolves the attacker-controlled current version. 5. Malicious lifecycle scripts or CLI code execute with the invoking user’s permissions. 6. The package may read accessible wallet data or credentials, alter destinations, initiate unauthorized transactions, or exfiltrate exported private keys and mnemonic phrases. ### Impact Assessment Successful explo ...[truncated 631 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to an exact, reviewed version rather than relying on the latest registry resolution: ```bash npm install --save-exact @mynthai/nova@<reviewed-version> ``` 2. Provide and enforce a lockfile containing registry integrity metadata. 3. Verify package provenance, signatures, and integrity before installation or execution. 4. Avoid automatic `npx` retrieval. If npx remains supported, require an exact reviewed version and explicit user approval: ```bash npx @mynthai/nova@<reviewed-version> ``` 5. Disable npm lifecycle scripts where compatible: ```bash npm install --ignore-scripts --save-exact @mynthai/nova@<reviewed-version> ``` 6. Run wallet tooling under a dedicated least-privilege account or isolated environment with narrowly scoped filesystem and network access. 7. Require a fresh security review before changing the pinned package version. 8. Document an authenticated release source and a trusted checksum or signature verification procedure.

T08 · Insecure Dependencies

Warning
Location
references/REFERENCE.md:7
Finding
Unpinned Global Installation and Remote Execution in Reference Documentation## Vulnerability Details **File Location**: `references/REFERENCE.md`, lines 7–15 **Vulnerability Type**: Unpinned npm dependency and direct remote package execution **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g @mynthai/nova ``` ```text Or run without installing via npx (replace all `nova` usage with `npx @mynthai/nova`). ``` ### Technical Analysis The reference documentation independently recommends globally installing or directly executing the latest registry-resolved `@mynthai/nova` package. Neither path pins a reviewed release or verifies artifact integrity. A global installation can expose the package to a broader user environment and place executable shims in the global npm binary location. Direct npx use can fetch and run code immediately. Because the package implementation is external to the audited project, its future behavior can change without any modification to this Skill package. The concern is a supply-chain trust failure rather than evidence that the currently named package is malicious. ### Attack Path 1. An attacker gains control of a package release channel or publishes a compromised update through the legitimate package identity. 2. A user or Agent follows the reference documentation. 3. The unversioned global installation or npx invocation retrieves the compromised release. 4. Attacker-controlled installation hooks or runtime logic execute with the invoking user’s authority. 5. The malicious package can tamper with wallet operations, access available secrets, or replace expected CLI behavior. ### Impact Assessment The attacker may obtain code execution as the invoking user and access that user’s available files, environment variables, wallet state, and transaction context. A globally installed malicious CLI may also remain available for later invocations until removed, increasing exposure duration. If installed with elevated privileges, impact could be broader, although the documentation does not explicitly d ...[truncated 34 chars]
Remediation
## Remediation Suggestions - Replace unversioned global and npx examples with an exact, audited package version. - Prefer a project-local installation governed by a committed lockfile over global installation. - Publish expected integrity hashes or signature-verification instructions. - Require explicit approval before downloading or upgrading executable wallet software. - Avoid privileged global npm installation. - Run the package in a least-privilege, isolated environment. - Review every new package release before updating the pinned version. - Where supported, suppress lifecycle scripts and permit only those that have been audited.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The skill instructs users to run `npx @mynthai/nova` without pinning a specific version, which allows whatever package version is current at execution time to be fetched and run. In a wallet-automation skill, this is especially dangerous because a malicious or compromised package update could immediately gain access to authentication flows, transaction commands, and sensitive wallet material.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The reference recommends running the wallet via `npx @mynthai/nova` without pinning a specific version. That allows whatever package version is current at execution time to be fetched and run, creating supply-chain risk if a malicious or broken update is published or if dependency resolution changes unexpectedly. In a wallet/financial automation context, this is more dangerous than usual because the tool handles authentication, keys, balances, and transfers.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Treat exit code `1` as failure and inspect `error.message`.

- Never assume success without checking both:

  - Process exit code
  - `status` field in structured output (`-j` or `-t`)
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Agent guidance:

- Prefer `-j` or `-t` to reliably detect success/failure.
- Do not ask users to paste sensitive information beyond the 6-character
  code.
- If `--force` is used, clearly warn it can overwrite an existing
  private-key wallet.
Confidence
80% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Store private keys in logs
- Display seed phrase in shared environments
- Auto-confirm withdrawals without validation
- Paste `claimUrl` into shared tickets/chats/docs (treat it like a
  password)
Confidence
85% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
### Private Key Wallet Flow

1.  Run any command (wallet auto-created)

2.  Immediately:
Confidence
80% confidence
Finding
Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Static analysis

No suspicious patterns detected.