Back to skill

Security audit

Accept Task

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its OpenAnt task-management purpose, but it relies on mutable remote CLI execution and authorizes external task commitments without confirmation.

Review this skill before installing. Prefer a version pinned and integrity-checked OpenAnt CLI, and require explicit confirmation before accepting, applying for, team-accepting tasks, or downloading task attachments. Treat downloaded files as untrusted.

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:6
Finding

Unpinned Third-Party CLI Is Downloaded and Executed Through npx

Content
View full analysis
--json npx @openant-ai/cli@latest tasks accept --json npx @openant-ai/cli@latest tasks accept --team --json npx @openant-ai/cli@latest tasks apply --message "I have 3 years of Solana auditing experience. Previously audited Marinade Finance and Raydium contracts." --json npx @openant-ai/cli@latest files list --json npx @openant-ai/cli@latest files download --all --json npx @openant-ai/cli@latest files download --all --output ./task-files/ --json npx @openant-ai/cli@latest files url --all --json ``` ### Technical Analysis `npx` can retrieve and execute an npm package on demand. The `@latest` tag does not identify an immutable, reviewed artifact: its target can change whenever a new version is published. Consequently, the code executed when the skill is invoked may differ from the code that existed when the skill was audited. The project contains no exact package version, dependency lockfile, integrity hash, or documented provenance-verification mechanism. The affected CLI is used for authenticated OpenAnt operations, remote state changes, and downloading externally supplied files. Any package lifecycle behavior and transitive dependencies execute with the privileges and environment inherited from ...[truncated 1671 chars]
Remediation
View remediation
status --json ``` 2. Prefer installing the dependency through a committed lockfile that records package and transitive-dependency integrity metadata. Execute the locked local binary instead of resolving a package dynamically for every invocation. 3. Verify npm package provenance, publisher identity, release signatures or attestations, and integrity information before approving an update. 4. Establish a controlled update process: - Review release changes and dependency-tree differences. - Scan the new artifact and its transitive dependencies. - Test it in an isolated environment. - Update the pinned version and lockfile only after approval. 5. Run the CLI in a sandbox or restricted subprocess with only the filesystem paths, environment variables, credentials, and network destinations required for OpenAnt operations. 6. Avoid exposing unrelated secrets to the CLI process. Supply narrowly scoped OpenAnt credentials at execution time and rotate them if a dependency compromise is suspected. 7. Restrict downloaded files to a dedicated directory and treat their contents as untrusted, particularly before opening or executing them. ]]>
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 (19)

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding

The repeated manifest match remains a true vulnerability, not a false positive. The skill's context of authenticated marketplace interaction makes unpinned CLI execution particularly dangerous compared with a harmless demo or offline utility.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The description contains very broad invocation phrases such as 'take this task', 'pick up work', and 'volunteer for an assignment', which can match common conversational language and unintentionally trigger a side-effecting skill. Because this skill accepts/applies for real tasks and may download files, accidental invocation can lead to unauthorized external actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding

Another instance of the same line-level problem: mutable package resolution via npx ...@latest. In this context, even a brief compromise of the upstream package could turn ordinary task acceptance or file operations into credential theft or arbitrary command execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The documentation instructs use of npx @openant-ai/cli@latest status --json, again normalizing execution of an unpinned remote package. Even in docs, this matters because agents may follow these commands directly and inherit the same supply-chain execution risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The tasks get example uses the same mutable @latest package reference. Because this command is used before deciding to accept or apply, compromise here could manipulate output, exfiltrate auth material, or mislead downstream agent decisions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The direct accept command executes a mutable npm package immediately before performing a state-changing action. That creates a strong chain from supply-chain compromise to unauthorized task acceptance or broader host compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The application flow also depends on npx ...@latest, exposing authenticated application messages and session context to whatever package version is served at runtime. Since this can submit content externally, compromise could leak data or send attacker-crafted applications.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Polling task status through an unpinned runtime-fetched package is a real vulnerability because it extends trust to mutable third-party code for decision-critical state. An attacker controlling the package could falsify status or perform side effects under the guise of a read operation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Listing files with npx ...@latest is risky because the command may operate on task identifiers and authenticated file metadata, and can precede downloads of untrusted content. A compromised package could exfiltrate file listings or pivot into arbitrary file-system actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Downloading files via a mutable package reference compounds risk: the package itself may be malicious, and it is handling external content download paths. That combination raises the chance of data exfiltration, malicious overwrite, or staging of further attacks.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The example for direct accept again relies on @latest, carrying the same supply-chain vulnerability into an action that changes remote state. Because the skill encourages immediate execution, there is little opportunity for human review before impact occurs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The apply example uses an unpinned package while also sending a free-form message externally. If the package is compromised, it could alter submissions, steal message content, or perform unrelated network actions under agent credentials.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The team accept example is also vulnerable because it executes mutable package code while specifying a team context, potentially affecting shared organizational assets. This broadens impact from an individual account to team-level task ownership or reputation effects.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

Another @latest invocation appears in the examples/flow area and represents the same true vulnerability: runtime trust in a mutable registry artifact. In a skill centered on authenticated marketplace operations, this is more dangerous than a purely local helper command.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This command reference still depends on @latest, so agents following the skill may execute unreviewed code. Since the skill also chains into comments and submissions, compromise here can affect the full task workflow, not just acceptance.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The referenced CLI remains unpinned at this line, preserving the same package substitution risk. The cumulative repetition across the skill increases exposure because nearly every workflow step depends on mutable code resolution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This final occurrence of @latest is also a true supply-chain vulnerability. The context makes it especially risky because the skill operationalizes these commands, making exploitation plausible during normal user requests.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

The 'No confirmation needed' autonomy instruction delegates a state-changing business decision to the agent. In context, the skill can accept work, create applications, and initiate follow-on file access, so a mistaken trigger or adversarial prompt could commit the user or team to external obligations without informed approval.

Content

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

md
## Autonomy

Accepting and applying for tasks are **routine operations** — execute immediately when the user has asked you to find and take on work. No confirmation needed.

## Next Steps

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown explicitly instructs autonomous task acceptance and file downloads without warning about external side effects. This is dangerous because it encourages the agent to perform irreversible or consequential network actions and fetch external content without a confirmation checkpoint, increasing risk of unintended commitments and exposure to malicious attachments.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.