Back to skill

Security audit

Ai Avatar Video

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for creating avatar videos, but its setup asks users to execute a mutable remote installer and optional unpinned skill installs.

Review before installing. Prefer a pinned, inspectable CLI download with independent checksum or signature verification, run login separately, and avoid submitting private face, voice, or video media unless you understand the provider's handling and have consent from people depicted or recorded.

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:16
Finding
Remote Installer Is Executed Directly Without Local Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:16` **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 command downloads mutable content from `https://cli.inference.sh` and passes it directly to a shell. The project does not pin an installer version, verify a repository-pinned checksum or signature before execution, or provide a locally auditable installer. Although `SKILL.md` claims that the installer only detects the operating system and architecture, downloads a matching binary, and verifies its checksum, that assertion cannot be verified from the audited project. A checksum obtained or selected by the same mutable remote infrastructure does not independently protect against compromise of that infrastructure. Executing an arbitrary remote shell response exceeds the minimum privileges required to install a known CLI binary. The payload receives all permissions available to the user running the command. ### Attack Path 1. A user follows the documented Quick Start command. 2. The host serving `cli.inference.sh`, its deployment credentials, or another component of the delivery path is compromised. 3. The server returns a modified shell script instead of the expected installer. 4. `curl` streams the response directly into `sh` without allowing local inspection or independent integrity verification. 5. The malicious script executes with the invoking user's privileges. 6. The payload can access user-readable data, alter user-writable files, install persistence where permitted, or monitor the subsequent `infsh login` process and authentication state. ### Impact Assessment Successful exploitation provides arbitrary command execution with the invoking user's effective privileges. Depending on those privileges, the payload could: - Read or modify files accessible to the user. - Steal environm ...[truncated 497 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` installation pattern. 2. Pin the CLI to an explicit, immutable version. 3. Download the binary and integrity metadata as separate files. 4. Verify the binary against a SHA-256 digest stored in the reviewed Skill or validate a signature rooted in a separately trusted public key. 5. Abort installation if integrity or signature verification fails. 6. Display the exact download URL, installation destination, and permissions to the user before installation. 7. Avoid administrator privileges and install into a user-controlled directory with minimal permissions. 8. Keep authentication as a separate, explicit command after installation so it cannot run following an unverified installer. A safer documented workflow should resemble: ```bash curl -fL -o infsh "<version-pinned-binary-url>" printf '%s %s\n' "<reviewed-sha256>" "infsh" | sha256sum -c - install -m 0755 infsh "$HOME/.local/bin/infsh" infsh login ``` The digest must come from an independently trusted, immutable source rather than being dynamically accepted from the same mutable endpoint. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:127
Finding
Related Skills Are Installed Through Unpinned Third-Party Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:127-142` **Vulnerability Type**: Insecure third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```bash # Full platform skill (all 150+ apps) npx skills add inference-sh/skills@inference-sh # Text-to-speech (generate audio for avatars) npx skills add inference-sh/skills@text-to-speech # Speech-to-text (transcribe for dubbing) npx skills add inference-sh/skills@speech-to-text # Video generation npx skills add inference-sh/skills@ai-video-generation # Image generation (create avatar images) npx skills add inference-sh/skills@ai-image-generation ``` ### Technical Analysis The optional commands invoke `npx` without pinning the `skills` package to a reviewed version. If the package is not already available locally, `npx` may retrieve executable package content from the configured registry. The referenced Skills are also identified by mutable names rather than immutable release versions or commit hashes. Consequently, the code and instructions installed when users run these commands may differ from what existed when this project was audited. Compromise of the package publisher, registry account, source repository, or referenced Skill content could introduce malicious executable code or hostile Agent instructions. ### Attack Path 1. An attacker compromises an upstream package, publisher account, source repository, or mutable Skill reference. 2. The attacker publishes or substitutes malicious content under a name used by the documented commands. 3. A user runs one of the related-Skill installation commands. 4. `npx` resolves the unpinned runner and the command resolves mutable external Skill content. 5. The changed package or Skill is downloaded and installed without a repository-pinned integrity check. 6. Malicious package lifecycle behavior, executable code, or Skill instructions affect the local environment or later Agent sessions. ### Impact Assessment The precise ...[truncated 735 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the `skills` package used by `npx` to an exact reviewed version. 2. Pin every referenced Skill to an immutable release, content digest, or commit hash. 3. Record and verify package integrity values or cryptographic signatures before installation. 4. Prefer a preinstalled, reviewed local CLI and invoke it with `npx --no-install` so an unexpected network fetch cannot occur. 5. Present downloaded Skill contents for review before enabling or loading them. 6. Separate optional related-Skill installation from the primary usage documentation and clearly disclose that it adds third-party code or instructions. 7. Configure dependency update automation to submit explicit reviewed changes rather than resolving the latest mutable content at installation time. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (10)

External Script Fetching

High
Category
Supply Chain
Content
## Quick Start

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

# Create avatar video from image + audio
infsh app run bytedance/omnihuman-1-5 --input '{
Confidence
98% confidence
Finding
`curl -fsSL https://cli.inference.sh | sh` executes a remotely fetched script directly in the user's shell, creating a classic supply-chain and remote code execution risk if the server, CDN, DNS, TLS termination, or script distribution path is compromised. The nearby reassurance text lowers user skepticism, which makes the pattern more dangerous because it encourages immediate execution of unreviewed network-delivered code.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The manifest description advertises activation triggers such as "ai avatar," "talking head," "lipsync," and "avatar video" without any narrowing context, exclusions, or negative examples. Several of these are generic content-creation phrases, which increases the risk of unintended invocation when a user is discussing media tasks more generally.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill repeatedly instructs users to provide image, audio, and video URLs to remote `infsh app run` services, but it does not clearly warn that this media will be transmitted to third-party processing systems. In a media-generation context, inputs often contain faces, voices, and other biometric or sensitive content, so the missing disclosure increases privacy and data-handling risk.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The manifest describes a skill for creating AI avatar and talking-head videos with OmniHuman, Fabric, and PixVerse, but the documented workflows also invoke unrelated apps for TTS, speech transcription, and full dubbing pipelines. Those operations go beyond the stated narrow scope of avatar-video creation and describe a broader media-processing capability.

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.

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.

Intent-Code Divergence

Low
Confidence
76% confidence
Finding
The quick start instructs users to pipe a remote install script to `sh` and then run `infsh login`, while the adjacent note frames the install step as limited to OS detection, download, and checksum verification with no broader effects. This documentation creates a misleadingly narrow description of what the overall setup sequence does, because authentication and account interaction are also part of the instructed behavior.

Static analysis

No suspicious patterns detected.