Back to skill

Security audit

Character Design Sheet

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a normal character-image workflow, but its quick start asks users to run a mutable remote shell installer and then log in, which needs review before use.

Review the installer source and prefer a pinned, separately verified manual install before using this skill. Do not run the quick-start `curl | sh` command or chained login in an environment with sensitive files or credentials unless you trust the inference.sh distribution path and understand where the CLI stores tokens. Treat the related `npx skills add` commands as optional and avoid them unless pinned or verified.

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 Piped Directly into a Shell<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 14 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash curl -fsSL https://cli.inference.sh | sh && infsh login ``` ### Technical Analysis The Quick Start instructions download mutable content from an external URL and pipe it directly into `sh`. The installer is therefore executed before the user can inspect it, and neither the installer version nor its cryptographic digest is pinned by the command. The document states that the installer verifies the SHA-256 checksum of the CLI binary. However, this does not establish the integrity of the installer itself. Because the remote script controls both the installation process and the verification logic, a compromised or malicious installer could bypass verification, select a different artifact, or execute unrelated commands. This execution method is not required for the Skill's declared character-image generation functionality. A specific CLI release could instead be downloaded and verified independently before execution. Although the documentation claims that elevated permissions and background processes are not used, the shell script receives all permissions available to the invoking user and is not technically constrained to the described behavior. ### Attack Path 1. A user follows the documented Quick Start command. 2. `curl` requests the current content hosted at `https://cli.inference.sh`. 3. The remote host, distribution infrastructure, or delivery path is compromised, or the publisher changes the script after this Skill has been reviewed. 4. The returned content is streamed directly to `sh` without local inspection or independent integrity verification. 5. The malicious script executes with the permissions of the invoking user. 6. The command subsequently runs `infsh login`, allowing a substituted or modified CLI to capture credentials or authentication tokens. 7. The payl ...[truncated 1059 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` installation method from the default Quick Start instructions. 2. Direct users to a versioned release artifact from an authenticated official release page. 3. Pin a specific CLI version rather than retrieving a mutable latest release. 4. Download the artifact and its checksum or signature as separate files without executing either one. 5. Verify the artifact against a digest or digital signature distributed through an independent trusted channel. 6. Publish the expected digest directly in version-controlled documentation when practical. 7. Require users to inspect or explicitly execute the verified installer or binary as a separate step. 8. Avoid automatically chaining installation with `infsh login`; authentication should occur only after users have confirmed the installed binary's provenance. 9. Document the files, directories, network endpoints, and permissions used by the installer. 10. Prefer a trusted, signed package-manager distribution where the package is version-pinned and reproducibly built. A safer workflow should resemble: ```bash # Example structure only; replace placeholders with a reviewed release. curl -fLO https://dist.inference.sh/cli/releases/<pinned-version>/<artifact> echo "<trusted-sha256> <artifact>" | sha256sum --check install <artifact> "$HOME/.local/bin/infsh" infsh login ``` The expected digest must come from a trusted source independent of the downloaded artifact and must not be dynamically supplied by the same unverified installer. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:271
Finding
Unpinned Third-Party Skill Installation Commands<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 271-273 **Vulnerability Type**: Insecure third-party dependency acquisition **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 use `npx` and mutable repository-style references without an immutable commit identifier, version, or integrity digest. The security of these commands consequently depends on both the package resolved as `skills` by `npx` and the current contents associated with each external Skill reference. A publisher account compromise, repository compromise, dependency confusion event, or later malicious update could cause users to acquire content different from what was reviewed with this project. Depending on the behavior of the `skills` package and the installed Skills, third-party code may execute during installation or when a newly installed Skill is subsequently loaded or invoked. These dependencies are presented only as related Skills and are not necessary for the declared character-design functionality. Their installation therefore adds avoidable supply-chain exposure. ### Attack Path 1. An attacker compromises the package, publisher account, source repository, or mutable reference used by one of the commands. 2. The attacker publishes malicious content under the same package or Skill identifier. 3. A user copies an installation command from `SKILL.md`. 4. `npx` resolves and runs the relevant package tooling, which retrieves the current third-party Skill content. 5. The malicious content is installed without validation against a reviewed immutable revision or trusted digest. 6. The malicious dependency executes during installation, if supported by the tooling, or later when the user or agent loads and invokes the installed Skill. 7. The payloa ...[truncated 1042 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove optional dependency-installation commands unless they are necessary for the Skill's core operation. 2. Pin the `skills` package used through `npx` to a reviewed exact version. 3. Pin each referenced Skill to an immutable commit hash or cryptographically verified release. 4. Use package lockfiles and integrity metadata where the ecosystem supports them. 5. Document the authoritative publisher and source repository for every related Skill. 6. Review the complete transitive dependency tree and any installation or lifecycle hooks. 7. Disable installation scripts where they are unnecessary and supported by the package manager. 8. Verify downloaded Skill manifests and scripts before allowing them to execute. 9. Run third-party Skill installation and evaluation in a restricted environment without secrets or sensitive filesystem access. 10. Establish an update-review process rather than automatically following mutable upstream content. Version labels alone are insufficient if they can be overwritten. Prefer immutable commit identifiers combined with trusted signatures or independently recorded cryptographic digests. ]]>
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 a character concept
infsh app run falai/flux-dev-lora --input '{
Confidence
99% confidence
Finding
The skill instructs users to execute a remote script directly with `curl ... | sh`, which gives the remote server immediate code execution on the user's machine. Even with a reassuring note about checksum verification, the dangerous pattern remains because users are told to trust and run network-fetched shell code without independently inspecting it first.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description includes many generic trigger phrases such as "character design," "character art," and "character creation," which can overlap with ordinary creative requests and adjacent art tasks. The file does not provide negative examples or context constraints to clarify when this skill should activate versus when a different image or design skill should be used.

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.

Context-Inappropriate Capability

Low
Confidence
79% confidence
Finding
The manifest describes a skill for character consistency techniques, reference sheets, and LoRA usage, but the document also instructs the user to fetch and execute a remote install script and perform CLI login. While using a CLI is related to image generation, installation/authentication guidance is an operational capability not explicitly justified by the narrowly framed design-sheet purpose.

Static analysis

No suspicious patterns detected.