Back to skill

Security audit

OpenAnt

Security checks for vulnerabilities and agentic risk

Overview

This skill appears purpose-aligned for OpenAnt, but it asks agents to run a mutable remote CLI and exposes financial, account, and messaging actions without clear confirmation guardrails.

Review this skill before installing. It should be used only when you intentionally want OpenAnt actions, and financial, account-changing, or messaging commands should be confirmed explicitly. Prefer a pinned, reviewed CLI version or a trusted local install instead of executing @latest through npx, especially during login or wallet-related workflows.

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:12
Finding
Execution of an Unpinned Third-Party CLI Package## Vulnerability Details **File Location**: `SKILL.md`, lines 12 and 19–21 **Vulnerability Type**: Supply-chain risk from a mutable npm package version **Risk Level**: Medium ### Vulnerable Code ```bash npx @openant-ai/cli@latest <command> [options] ``` ```bash npx @openant-ai/cli@latest login # Interactive OTP via email npx @openant-ai/cli@latest whoami --json npx @openant-ai/cli@latest status --json ``` ### Technical Analysis The skill instructs agents to execute `@openant-ai/cli` through `npx` using the mutable `latest` distribution tag. Depending on the local npm configuration and cache state, `npx` can download the selected package and execute its code immediately. Because `latest` does not identify a fixed, reviewed artifact, the code executed can change after this skill has been audited. The project provides no exact package version, lockfile, integrity hash, or provenance-verification procedure. This creates a supply-chain trust boundary in which compromise of the package publisher, npm account, release pipeline, package dependencies, or registry delivery path could replace expected CLI behavior with arbitrary code. The exposure is particularly relevant because the documented CLI is used for authentication and wallet-related operations. ### Attack Path 1. An attacker compromises the npm publisher account, release pipeline, package dependency chain, or another component capable of controlling the package identified by the `latest` tag. 2. The attacker publishes a malicious package release and assigns or causes the `latest` tag to resolve to it. 3. A user or agent follows the skill instructions and invokes `npx @openant-ai/cli@latest`. 4. `npx` retrieves or resolves the attacker-controlled release and executes its package entry point with the invoking user's operating-system privileges. 5. The malicious package can inspect accessible files, environment variables, npm configuration, and OpenAnt configuration or authentication materi ...[truncated 864 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed version, for example `@openant-ai/cli@X.Y.Z`. 2. Prefer installation through a committed `package.json` and lockfile rather than downloading an executable package during each operational invocation. 3. Enforce lockfile integrity in deployment or automation with commands such as `npm ci`. 4. Verify npm package provenance, publisher identity, signatures where available, and registry integrity metadata before approving upgrades. 5. Introduce a controlled dependency-update process that reviews release changes and transitive dependencies before modifying the pinned version. 6. Run the CLI with least privilege in an isolated environment, exposing only the configuration and credentials required for the requested operation. 7. Avoid making wallet secrets or unrelated credentials available to the CLI process, and require explicit user confirmation for state-changing or financial operations.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Vague Triggers

Medium
Confidence
89% confidence
Finding
The description uses broad trigger terms such as tasks, teams, wallets, messaging, and marketplace, which can cause the skill to activate for many generic requests rather than narrowly scoped OpenAnt operations. Over-broad activation increases the chance an agent will enter a workflow with financial, messaging, or account side effects when a user did not specifically intend to use this external platform.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill instructs use of `npx ...@latest`, which fetches and executes the newest package version at runtime rather than a reviewed, pinned release. If the upstream package is compromised or a malicious version is published, an agent following this skill could immediately execute attacker-controlled code on the host.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
This login command also uses runtime execution of `@latest`, creating a supply-chain execution risk during authentication flows. Because login typically handles credentials/session establishment, compromise here could expose tokens or capture authentication material in addition to arbitrary code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The `whoami` example repeats the pattern of executing an unpinned remote package. Even for read-oriented commands, the risk is not the command semantics but that `npx` may first download and run untrusted updated code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The `status` example again normalizes use of `npx ...@latest`, exposing any agent or user that follows the documentation to remote code execution via package compromise. Repetition across the skill increases the chance that the unsafe pattern will actually be used.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill documents commands that can create tasks, fund them, join teams, register agents, and send messages, but it does not instruct the agent to obtain explicit confirmation before irreversible or sensitive operations. In the context of wallets and on-chain collaboration, missing guardrails can lead to unintended spending, public postings, account changes, or other user-impacting actions.

Session Persistence

Medium
Category
Rogue Agent
Content
## Task Lifecycle (Typical)

1. Create: `tasks create --title "..." --description "..." --reward <amount> [--token USDC] [--tags dev,solana]`
2. Fund: `tasks fund <id>` (if DRAFT)
3. Accept / Apply: `tasks accept <id>` or `tasks apply <id> --message "..."`
4. Submit: `tasks submit <id> --text "..." [--proof-url <url>]`
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Static analysis

No suspicious patterns detected.