Back to skill

Security audit

ordercli

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a disclosed food-order CLI wrapper, but it asks users to install an unpinned third-party executable that may handle passwords, browser cookies, and session tokens.

Review before installing. Use a pinned, trusted ordercli version if possible, avoid importing Chrome cookies or browser profiles unless you understand the session exposure, and do not provide Deliveroo tokens unless you specifically intend to test the unfinished Deliveroo flow.

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
Unpinned Mutable Third-Party CLI Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 12-27 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml [ { "id": "brew", "kind": "brew", "formula": "steipete/tap/ordercli", "bins": ["ordercli"], "label": "Install ordercli (brew)", }, { "id": "go", "kind": "go", "module": "github.com/steipete/ordercli/cmd/ordercli@latest", "bins": ["ordercli"], "label": "Install ordercli (go)", }, ], ``` ### Technical Analysis The skill offers two installation methods for the `ordercli` executable, but neither identifies an immutable, reviewed artifact: - The Go installation explicitly uses the mutable `@latest` version selector. - The Homebrew installation references a third-party custom tap without pinning a package version, commit, checksum, or signature. The effective executable can therefore change after the skill has been reviewed. If the upstream repository, release process, Go module, or Homebrew tap is compromised, a future installation could retrieve and execute substituted code. This risk is especially relevant because the installed executable is subsequently trusted to process Foodora passwords, browser cookies, imported sessions, order history, delivery information, and cart-changing operations. The project contains only `SKILL.md`, so the implementation and security properties of the external executable could not be independently audited. ### Attack Path 1. An attacker compromises the upstream `ordercli` repository, release workflow, module publication process, or custom Homebrew tap. 2. The attacker publishes a malicious version or changes the package definition to reference a substituted artifact. 3. A user or agent installs the dependency through the document ...[truncated 1055 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a reviewed, immutable version or commit, for example a specific semantic version backed by a fixed module checksum. 2. Pin the Homebrew installation to a reviewed release rather than implicitly accepting future formula changes. 3. Publish SHA-256 checksums for release artifacts and verify them before installation. 4. Sign releases using a verifiable mechanism such as Sigstore or GPG and enforce signature verification during installation. 5. Prefer an official, auditable package source over a custom tap where practical. 6. Add an explicit dependency-update process that requires security review before changing the pinned version or digest. 7. Run the CLI with least privilege and avoid exposing unrelated environment variables, files, browser profiles, or credentials to the process. 8. Document the exact reviewed dependency version and its expected integrity digest in the skill metadata. ]]>
Vulnerability Patterns
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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 (3)

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Content
ora reorder <orderCode>`
- Confirm: `ordercli foodora reorder <orderCode> --confirm`
- Address: `ordercli foodora reorder <orderCode> --confirm --address-id <id>`

Cloudflare / bot protection

- Browser login: `ordercli foodora login --email you@example.com --password-stdin --browser`
- Reuse profile: `--browser-profile "$HOME/Library/Application Support/ordercli/browser-profile"`
- Import Chrome cookies: `ordercli foodora cookies chrome --profile "Default"`

Session import (no password)

- `ordercli foodora session chrome --url https://www.foodora.at/ --profile "Default"`
- `ordercli foodora session refresh --client-id android`

Deliveroo (WIP, not working yet)

- Requires `DELIVEROO_BEARER_TOKEN` (optional `DELIVEROO_COOKIE`).
- `ordercli deliveroo config set --market uk`
- `ordercli deliveroo history`

Notes

- Use `--config /tmp/ordercli.json` for testing.
- Confirm before any reorder or cart-changing action.
Confidence
86% confidence
Finding
The documented commands include importing Chrome cookies, reusing browser profiles, and creating sessions without a password, which are credential and session-token handling behaviors commonly associated with information-stealer tradecraft. In this agent-skill context, these features are especially risky because they enable account access by harvesting local browser state rather than using normal authentication flows, potentially exposing sensitive session material across services.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill is labeled as Foodora-only, but it documents Deliveroo commands and references Deliveroo bearer tokens and cookies. This scope mismatch can mislead users and automation about which services and credentials are involved, increasing the risk of accidental credential exposure or unintended cross-service use.

Description-Behavior Mismatch

Low
Confidence
92% confidence
Finding
The skill is labeled as Foodora-only, but it documents Deliveroo commands and references Deliveroo bearer tokens and cookies. This scope mismatch can mislead users and automation about which services and credentials are involved, increasing the risk of accidental credential exposure or unintended cross-service use.

Static analysis

No suspicious patterns detected.