Back to skill

Security audit

Product Photography

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for AI product photography, but its quick start tells users to run a live remote installer directly in the shell before logging in.

Review this skill carefully before installing. Prefer a manual or pinned install path for the inference.sh CLI, verify checksums or signatures from a trusted source before login, and avoid sending private product images, unreleased designs, or sensitive prompts to hosted inference services unless that sharing is acceptable.

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
Unverified Remote Installer Executed Directly by Shell<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:14` **Vulnerability Type**: 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 command downloads mutable content from `https://cli.inference.sh` and pipes it directly into `sh`. The remote script executes immediately with the invoking user's privileges, without first being saved, inspected, pinned to a specific version, or authenticated using a user-verified signature or digest. The document states that the installer verifies the SHA-256 checksum of the CLI binary it downloads. This does not establish the integrity of the bootstrap script itself: the remotely hosted script determines which binary and checksum to use and can change after this Skill has been reviewed. Consequently, the effective executable payload is outside the audited repository. Installing a CLI may be necessary for the Skill's declared image-generation functionality, but direct shell execution of mutable network content is not the least-privilege or minimum-risk installation method. ### Attack Path 1. A user or agent follows the documented Quick Start command. 2. `curl` retrieves the current response from `cli.inference.sh`. 3. A compromise of the hosting infrastructure, delivery pipeline, domain, or remote installer causes malicious shell content to be returned. 4. The pipe sends that content directly to `sh`, with no opportunity for inspection or independent integrity verification. 5. The malicious content executes with the current user's privileges. 6. The payload can modify user-accessible files, install altered executables, collect accessible secrets, or establish persistence. 7. The subsequent `infsh login` operation may expose authentication material to a malicious or replaced CLI. ### Impact Assessment Successful exploitation permits arbitrary command execution under the ac ...[truncated 549 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` installation pipeline. 2. Pin installation instructions to a specific, immutable CLI release and artifact URL. 3. Download the artifact to disk before execution: - Use HTTPS. - Verify a SHA-256 digest published in a version-controlled, independently trusted location. - Prefer a cryptographic signature whose public verification key is distributed separately from the artifact host. 4. Present the installer or package for inspection and require explicit user confirmation before executing it. 5. Prefer a trusted package manager with version pinning and signature verification where available. 6. Document the files, directories, network endpoints, and credentials the CLI accesses. 7. Keep installation separate from `infsh login` so a user can verify the installed binary before providing authentication material. 8. Run the CLI as an unprivileged user and explicitly prohibit use with `sudo` or a root account unless a documented operation strictly requires it. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:283
Finding
Unpinned Third-Party Skill Installation Through Runtime Package Tooling<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:283-285` **Vulnerability Type**: Insecure and unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add inference-sh/skills@ai-image-generation npx skills add inference-sh/skills@flux-image npx skills add inference-sh/skills@prompt-engineering ``` ### Technical Analysis The related-Skill installation examples invoke `npx`, which may retrieve and execute package tooling at runtime, and identify the requested Skills using mutable names rather than immutable reviewed versions or commit hashes. Because neither the installer tooling nor the referenced Skill content is pinned in these commands, future upstream changes can introduce code or instructions that were not present during this audit. The safety of these operations therefore depends on the ongoing integrity of external package infrastructure, namespaces, repositories, and publisher accounts. These additional Skills are not necessary for the core product-photography examples in this file. Presenting their unpinned installation commands expands the supply-chain trust boundary beyond what is required for the declared functionality. ### Attack Path 1. A user follows one of the “Related Skills” installation commands. 2. `npx` resolves any required runtime package tooling from external package infrastructure. 3. The `skills add` operation resolves the named external Skill from a mutable upstream source. 4. An attacker who compromises a publisher account, package, namespace, repository, or delivery infrastructure publishes altered tooling or Skill content. 5. The user retrieves the altered dependency because no immutable version, commit, or independently verified integrity value is specified. 6. The compromised tooling may execute during installation, or the added Skill may later influence agent behavior and tool use when loaded. ### Impact Assessment The precise privileges depend on the behavior of t ...[truncated 611 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the `npx` package or installer tooling to an exact reviewed version. 2. Pin every referenced Skill to an immutable release, content digest, or commit hash. 3. Verify package integrity and publisher signatures before installation. 4. Document the authoritative source repository and expected publisher identity for each dependency. 5. Review the complete contents and requested tool permissions of each Skill before enabling it. 6. Avoid automatic runtime retrieval where vendored, locked, or locally reviewed dependencies are practical. 7. Maintain a lockfile or equivalent integrity manifest and update dependencies only through an explicit review process. 8. Clearly mark related Skills as optional and separate their installation from the core workflow. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

External Script Fetching

High
Category
Supply Chain
Content
## Quick Start

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

# Clean studio packshot
infsh app run bytedance/seedream-4-5 --input '{
Confidence
98% confidence
Finding
`curl ... | sh` executes remote code directly from the network without giving the user a chance to inspect it first, creating a classic supply-chain/code-execution risk. Even with an install-note claiming checksum verification, the pattern still trusts a live fetched script and any compromise of the domain, CDN, TLS termination, or publishing pipeline could lead to arbitrary command execution on the user's machine.

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.

Missing User Warnings

Low
Confidence
83% confidence
Finding
The skill instructs users to run `infsh` commands that send prompts and, later, image filenames/content to remote services, but the documentation does not clearly warn that user-provided prompts or images may be transmitted off-device. The install note explains installer behavior, but it does not disclose the data-sharing implications of using the hosted inference apps themselves.