Back to skill

Security audit

intent-router

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to do the advertised intent classification, but it asks users to install and authenticate a global third-party payment CLI and send message text to an external service with limited privacy and safety guidance.

Review this before installing. Use it only for text you are comfortable sending to the listed external service, avoid secrets and sensitive personal or regulated data, and consider running the payment CLI in an isolated environment rather than installing it globally. Confirm the npm package publisher, version, payment destination, amount, and token storage/revocation behavior before authenticating or paying.

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

Unaudited Third-Party CLI Installed Globally and Executed

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 12-26
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Medium

bash
## Prerequisites

```bash
npm install -g awal@2.0.3
awal auth login

Usage

bash
npx awal@2.0.3 x402 pay \
  https://anicca-proxy-production.up.railway.app/api/x402/intent-router \
  -X POST \
  -d '{"text":"I want to book a flight to Tokyo next week","intents":["booking","complaint","question","feedback","cancellation"],"language":"en"}'
text

### Technical Analysis

The skill instructs users to install the third-party `awal` npm package globally and then execute it for authentication, payment, and remote API access. The package is pinned to version `2.0.3`, which reduces uncontrolled version drift, but the project does not include its implementation, an integrity hash, a lockfile, provenance information, or evidence that the package and its transitive dependencies were independently reviewed.

A global npm installation can execute package lifecycle scripts and places executable files in the user's global npm environment. The subsequent `awal auth login` and `npx awal@2.0.3 x402 pay` commands execute code supplied through the npm distribution channel. If the named package version, publisher account, registry response, or a transitive dependency is compromised, attacker-controlled code could run with the invoking user's privileges.

The CLI is also used for authentication and cryptocurrency payment operations. A compromised implementation could potentially access authentication artifacts, alter payment destinations or parameters, inspect local files available to the user, or transmit additional information beyond the documented classification request.

### Attack Path

1. An attacker compromises the npm publisher account, the referenced package release, or a dependency resolved during installation.
2. The user follows the documented prerequisite and runs `npm install -g awal@2.0.3`.
3. Malicious lif
...[truncated 1363 chars]
Remediation
View remediation

Remediation Suggestions

  1. Avoid global installation. Run the dependency in an isolated, least-privileged environment or add it as a project-local development dependency.
  2. Publish and verify package provenance, including the expected npm publisher, source repository, release process, and cryptographic integrity digest.
  3. Use a lockfile or equivalent integrity-controlled dependency manifest that covers the package and its complete transitive dependency tree.
  4. Audit the exact awal@2.0.3 package contents, lifecycle scripts, transitive dependencies, authentication storage, and payment handling before recommending execution.
  5. Disable npm lifecycle scripts during installation where compatible, then explicitly invoke only reviewed setup steps.
  6. Do not perform installation or execution as root or an administrator. Use a container, sandbox, or restricted operating-system account with minimal filesystem and network access.
  7. Document where authentication tokens are stored, their permissions, expiration behavior, and how users can revoke them.
  8. Require explicit confirmation of payment amount, destination, network, and request contents before submitting a transaction.
  9. Warn users that the request sends supplied text and optional context to anicca-proxy-production.up.railway.app; advise against submitting secrets or regulated personal data unless the service's privacy and retention controls have been reviewed.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger list includes very broad terms like 'intent', 'classify', 'route', and 'categorize', which can cause the skill to be selected for many unrelated prompts. In an agent environment, this can misroute tasks and unnecessarily send user content to the external service endpoint, increasing both privacy and cost exposure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill documentation encourages sending arbitrary user text to a remote HTTP endpoint but does not clearly warn that message contents are transmitted off-platform to a third-party service. This creates a meaningful data-handling risk because users or orchestrators may pass sensitive prompts, PII, or internal context without informed consent or sanitization.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.