Back to skill

Security audit

Og Image Design

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for creating social preview images, but its setup path asks users to run mutable internet code directly in a shell and suggests unpinned optional installs.

Review the installer before running it, prefer manual download and checksum or signature verification, and avoid the optional npx related-skill installs unless you have pinned and reviewed the exact versions. Treat any HTML, prompts, logos, or unreleased launch copy passed to infsh apps as data sent to an external service.

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
Remote Installer Is Downloaded and Executed Without Prior Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 14 **Vulnerability Type**: Remote payload retrieval and immediate shell execution **Risk Level**: High ### Vulnerable Code ```bash curl -fsSL https://cli.inference.sh | sh && infsh login ``` ### Technical Analysis The installation command streams the current response from `https://cli.inference.sh` directly into `sh`. Because the downloaded script is not saved, inspected, version-pinned, or independently authenticated before execution, its effective behavior can change after this Skill has been reviewed. The document states that the installer downloads a matching binary and verifies its SHA-256 checksum. However, that does not establish the integrity of the installer itself: the unverified remote script is already executing when it performs any claimed binary verification. A compromised distribution server, changed installer, or upstream infrastructure compromise could therefore cause arbitrary commands to run. Installing the CLI supports the declared image-generation workflow, but piping mutable remote content directly to a shell exceeds the minimum execution risk necessary to provide that functionality. A version-pinned binary downloaded and verified before execution would be safer. ### Attack Path 1. A user follows the Quick Start instructions. 2. `curl` retrieves the current script served by `cli.inference.sh`. 3. The response body is passed directly to the local shell without inspection or pre-execution integrity validation. 4. If the endpoint or its delivery infrastructure serves altered content, that content executes with the invoking user's privileges. 5. The payload could read or modify user-accessible files, access environment variables and credentials available to the process, install additional software, or retrieve further payloads. ### Impact Assessment Successful exploitation provides arbitrary command execution under the account running the command. The reachable sco ...[truncated 516 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` pipeline. 2. Publish immutable, versioned CLI artifacts rather than relying on a mutable installer endpoint. 3. Download the selected artifact without executing it: ```bash curl -fSLo infsh https://dist.example.invalid/infsh/VERSION/infsh-PLATFORM ``` 4. Publish a checksum or cryptographic signature through a separately secured and authenticated channel. 5. Require users to verify the artifact before installation: ```bash echo "EXPECTED_SHA256 infsh" | sha256sum --check - ``` 6. Prefer signature verification with a documented public key over an unauthenticated checksum hosted beside the artifact. 7. Document the destination path and required permissions. Do not request administrator privileges unless they are strictly necessary. 8. Pin the installer or binary version and provide reproducible release provenance, such as signed release metadata or build attestations. 9. If an installer remains available, make manual download, inspection, and verification the default installation method rather than an optional note. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:212
Finding
Unpinned Third-Party Skills Are Installed Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 212-214 **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add inference-sh/skills@ai-image-generation npx skills add inference-sh/skills@landing-page-design npx skills add inference-sh/skills@prompt-engineering ``` ### Technical Analysis The recommended commands use `npx` and mutable third-party Skill identifiers without immutable versions or integrity hashes. Depending on the local environment, `npx` may retrieve and execute the `skills` package if it is not already installed. The referenced Skill content can also change after this audit because no reviewed commit, release, or content digest is specified. This creates a supply-chain trust boundary outside the audited project. A compromise of the package registry, package account, source repository, namespace, or a future release could cause users to retrieve attacker-controlled tooling or Skill instructions. These dependencies are listed only as related Skills and are not necessary for the declared OG-image-design functionality. Recommending their immediate installation therefore introduces avoidable dependency and execution exposure. ### Attack Path 1. A user copies one of the related-Skill installation commands. 2. `npx` resolves the `skills` command from the local environment or a remote package registry. 3. If remotely resolved, package lifecycle or command code can execute with the user's privileges. 4. The command resolves a mutable third-party Skill reference without a pinned revision or verified digest. 5. A compromised or subsequently modified package or Skill is installed. 6. Malicious package code could act during command execution, while malicious Skill instructions could affect later agent sessions when the installed Skill is loaded. ### Impact Assessment A malicious `npx`-resolved package could execute commands with the invoking user's ...[truncated 417 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove optional installation commands that are not required for the Skill's core functionality, or clearly mark them as untrusted third-party extensions. 2. Pin the `skills` CLI to an explicitly reviewed version rather than relying on implicit `npx` resolution. 3. Pin each related Skill to an immutable release, commit hash, or content digest. 4. Use package-lock integrity metadata and a trusted registry configuration for Node.js tooling. 5. Review package lifecycle scripts and use an installation mode that disables scripts where compatible: ```bash npm install --ignore-scripts ``` 6. Publish the expected source repository, release identifier, checksum, and verification procedure for each recommended Skill. 7. Require users to inspect the downloaded Skill manifest and permitted tools before enabling it. 8. Periodically re-audit pinned dependencies before updating them; do not automatically track mutable branches or latest releases. ]]>
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

External Script Fetching

High
Category
Supply Chain
Content
## Quick Start

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

# Generate an OG image with HTML-to-image
infsh app run infsh/html-to-image --input '{
Confidence
98% confidence
Finding
The skill instructs users to execute a remote install script via `curl ... | sh`, which runs code fetched at runtime directly in the shell. Even with the note about checksum verification, the one-line command bypasses independent review and creates a strong supply-chain and remote code execution risk if the endpoint, transport, or upstream distribution is compromised.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The description includes generic triggers like "open graph," "social card," and "twitter card" in a long flat list, but does not define activation boundaries or negative examples. In a manifest file, this kind of broad phrasing can overlap with normal discussion about metadata or social previews and make it unclear when the skill should or should not activate.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The manifest describes a skill for Open Graph/social sharing image design, platform specs, branding, and dynamic image generation. Invoking `tavily/search-assistant` to research debugging tools adds a broad external search capability that is not necessary to design or generate OG images and is outside the skill's stated purpose.

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.