Back to skill

Security audit

App Store Screenshots

Security checks for vulnerabilities and agentic risk

Overview

The skill’s main purpose is coherent, but its install instructions ask users to run mutable remote code directly and optional unpinned package commands.

Review this skill before installing because the recommended setup runs a remote shell installer and optional unpinned npx commands. Prefer downloading and verifying the CLI manually, use pinned package versions where available, and run installation from a low-privilege environment without unnecessary secrets.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:14
Finding
Mutable Remote Installer Is Piped Directly Into a Shell<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:14` **Vulnerability Type**: `T03: Remote Payload Retrieval and Execution` **Risk Level**: Critical ### Vulnerable Code ```bash curl -fsSL https://cli.inference.sh | sh && infsh login ``` ### Technical Analysis The Quick Start retrieves a shell script from a mutable external URL and passes the response directly to `sh`. The script therefore executes before the user can inspect or independently authenticate its contents. TLS protects the connection in transit but does not mitigate a compromised hosting service, domain or DNS takeover, malicious upstream update, or unauthorized modification of the installer. The document claims that the installer verifies the downloaded binary's SHA-256 checksum, but that does not authenticate the installer itself. A compromised installer could bypass its advertised verification process or execute unrelated commands. Installing a CLI may support the Skill's declared screenshot-generation functionality, but immediate `curl | sh` execution is unnecessary. The same document identifies manual installation and verification as an available, less risky alternative. ### Attack Path 1. A user follows the Quick Start command. 2. An attacker compromises or gains control over `cli.inference.sh` or its delivery infrastructure. 3. The endpoint returns an altered shell script. 4. `curl` streams the response directly into `sh`. 5. The malicious commands execute immediately with the invoking user's privileges. 6. The payload can access the user's files and credentials, alter local configuration, or retrieve additional payloads. ### Impact Assessment The remote endpoint effectively receives arbitrary command execution under the account that invokes the installation command. Potential access includes all files, credentials, environment variables, authentication tokens, and configuration writable or readable by that user. The command does not explicitly request elevated privile ...[truncated 327 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the direct `curl | sh` pipeline. 2. Publish versioned installer artifacts at immutable URLs. 3. Pin the installation instructions to a specific audited release. 4. Download the artifact without executing it: ```bash curl -fL -o infsh.tar.gz https://example.invalid/releases/vX.Y.Z/infsh.tar.gz ``` 5. Publish the expected SHA-256 digest through a separately authenticated release channel and require users to compare against that pinned value before installation. 6. Prefer cryptographic signature verification using a documented, pinned public key. A checksum downloaded from the same potentially compromised endpoint is insufficient by itself. 7. Extract and install only after successful verification, without invoking unnecessary elevated privileges. 8. Document the destination paths, files created, network endpoints used, and uninstall procedure. 9. If a shell installer remains available, present it only as a separately downloadable file that users can inspect, and do not recommend piping it directly into a shell. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:259
Finding
Unpinned Third-Party Package Execution Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:259-262` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add inference-sh/skills@ai-image-generation npx skills add inference-sh/skills@ai-video-generation npx skills add inference-sh/skills@image-upscaling npx skills add inference-sh/skills@prompt-engineering ``` ### Technical Analysis The commands invoke `skills` through `npx` without specifying an exact audited package version or integrity value. Depending on the local environment and package resolution state, `npx` may retrieve and execute the currently published package from the configured registry. The related Skill references are also identified by mutable names rather than immutable, reviewed commit identifiers. Future upstream changes can therefore alter both the installer behavior and the installed Skill content after this audit. No evidence in the reviewed project establishes that the currently resolved package or related Skills are malicious. The vulnerability is the unsafe, mutable supply-chain execution path: registry compromise, package-account takeover, or a malicious future release could turn these documented commands into a code-execution or Skill-content injection vector. ### Attack Path 1. An attacker compromises the publisher account, registry package, source repository, or another relevant upstream distribution component. 2. The attacker publishes a malicious version of the `skills` package or modifies a referenced Skill. 3. A user runs one of the documented `npx skills add` commands. 4. `npx` resolves and executes the mutable third-party package. 5. The package executes with the user's privileges and installs the attacker-controlled Skill content. 6. Malicious package code may access local user data, while malicious Skill instructions may affect later agent operations when the installed Skill is loaded. ### Impact Assessment Package code executed thro ...[truncated 550 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the `skills` package to an exact audited version rather than allowing mutable resolution: ```bash npx --yes skills@X.Y.Z add ... ``` 2. Record and verify the package integrity digest through a lockfile or another supported integrity-verification mechanism. 3. Pin each related Skill to a reviewed immutable commit or content digest instead of a mutable repository reference. 4. Review package lifecycle scripts and the installed Skill content before recommending execution. 5. Prefer a locally installed, locked dependency over on-demand package retrieval. 6. Use a trusted registry configuration and enable available package provenance or signature verification. 7. Run installation with a non-privileged account in an isolated environment, without unnecessary secrets in environment variables. 8. Document the exact resolved versions and hashes so users can reproduce the audited installation. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

External Script Fetching

High
Category
Supply Chain
Content
## Quick Start

```bash
curl -fsSL https://cli.inference.sh | sh && infsh login

# Generate a device mockup scene
infsh app run falai/flux-dev-lora --input '{
Confidence
98% confidence
Finding
The skill instructs users to execute a remote shell script directly via `curl ... | sh`, which is a classic high-risk pattern because the downloaded content is executed immediately without an independent review step. Even though the surrounding text claims checksum verification and limited behavior, those assurances are themselves untrusted skill content and do not eliminate the risk of server compromise, script tampering, or malicious updates.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger list includes broad phrases like "aso," "app preview," "app listing," and "device mockup" without constraints or exclusion conditions. In a manifest file, this can cause unintended invocation for general marketing or design requests that are not specifically about this skill.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The natural-language guidance states "Other | English defaults," which imposes a language choice for remaining markets rather than offering a user-selected locale. This can violate language/locale policy when the user has not opted into English output.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Static analysis

No suspicious patterns detected.