Back to skill

Security audit

Ai Podcast Creation

Security checks for vulnerabilities and agentic risk

Overview

This skill is for AI podcast creation, but its setup instructions ask users to run remote installer code directly on their machine.

Review this skill before installing. The podcast functionality is coherent, but do not run the one-line installer unless you trust the publisher and delivery endpoint; prefer a versioned manual install with independent checksum or signature verification. Avoid submitting confidential documents, secrets, customer data, or regulated content to the remote inference examples unless you have confirmed the provider's data handling terms.

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 Downloaded and Executed Without Prior Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:16` **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 command downloads the current response from `https://cli.inference.sh` and pipes it directly into `sh`. The user cannot inspect or authenticate the installer before execution, and the command does not pin a release, artifact, checksum, or signing key. The installation note claims that the remote script detects the operating system and architecture, downloads a binary, and verifies its SHA-256 checksum. However, that verification is performed by the same unverified script being executed. It therefore does not protect against compromise of the installer endpoint or its delivery infrastructure. An attacker controlling the script can remove or bypass the advertised verification entirely. Remote shell execution is not the minimum privilege required to document or use the podcast-generation functionality. A verified, version-pinned CLI binary could be installed without granting a mutable remote response immediate shell execution. ### Attack Path 1. A user or agent follows the documented Quick Start command. 2. The shell requests the current response from `cli.inference.sh`. 3. The service, hosting account, DNS path, or other relevant delivery component is compromised. 4. The endpoint returns attacker-controlled shell commands instead of, or in addition to, the expected installer. 5. The pipeline executes those commands immediately through `sh`. 6. The payload inherits the invoking user's permissions and can access resources available to that account. 7. The subsequent `infsh login` operation may further expose authentication information if the installed CLI has been replaced or modified. ### Impact Assessment A successful exploit provides arbitrary command execution with th ...[truncated 791 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` installation pipeline. 2. Pin the CLI to a specific reviewed version and immutable release artifact. 3. Download the artifact to disk without executing it: ```bash curl -fL -o infsh.tar.gz "https://dist.inference.sh/<pinned-version>/<pinned-artifact>" ``` 4. Publish the expected SHA-256 digest through an independently authenticated release channel and verify it before extraction or execution: ```bash echo "<expected-sha256> infsh.tar.gz" | sha256sum -c - ``` 5. Prefer cryptographically signed release metadata and verify it using a pinned, documented public key. 6. Display manual installation and inspection instructions as the primary method rather than merely linking to them as an alternative. 7. Install into a user-owned directory without `sudo` or other privilege elevation. 8. Separate installation from authentication so users can validate the installed executable before running `infsh login`. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:274
Finding
Related Skills Are Installed Through Unpinned npx and Repository References<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:274-286` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash # Text-to-speech models npx skills add inference-sh/skills@text-to-speech # AI music generation npx skills add inference-sh/skills@ai-music-generation # LLM for scripts npx skills add inference-sh/skills@llm-models # Content pipelines npx skills add inference-sh/skills@ai-content-pipeline # Full platform skill npx skills add inference-sh/skills@inference-sh ``` ### Technical Analysis These commands invoke package tooling through `npx` and reference related Skills using mutable names rather than immutable versions or commit hashes. The commands do not identify a reviewed version of the `skills` tool, provide integrity metadata, or pin the referenced Skill content. Consequently, the content retrieved when these commands are executed may differ from the content that existed when this project was audited. Compromise of the relevant package, repository, maintainer account, or release process could cause users to install attacker-controlled instructions or code. The related Skills are optional additions rather than requirements for the declared podcast workflow. Dynamically obtaining them through unpinned tooling unnecessarily expands the supply-chain trust boundary. ### Attack Path 1. A user follows one of the Related Skills installation examples. 2. `npx` resolves and, where necessary, retrieves the applicable package tooling. 3. The command resolves a mutable repository or Skill reference such as `inference-sh/skills@text-to-speech`. 4. An attacker compromises the package, repository, maintainer account, or mutable upstream content. 5. The command retrieves the modified tooling or Skill instead of the version previously reviewed. 6. The compromised component is executed or installed according to the behavior of the invoked tooling. 7. Malicious instructions or code can then opera ...[truncated 954 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the `skills` package invoked by `npx` to a specific reviewed version. 2. Pin every related Skill to an immutable release or full commit hash rather than a mutable branch, tag, or named reference. 3. Use package lockfiles and registry integrity hashes where the ecosystem supports them. 4. Prefer tooling installed from a verified, controlled dependency manifest instead of allowing `npx` to resolve packages dynamically. 5. Disable or review dependency lifecycle scripts before installation where supported. 6. Document the expected source repository, version, commit hash, and integrity value for each related Skill. 7. Treat related Skills as optional and require users to review their contents and requested tool permissions before installation. 8. Periodically re-audit pinned versions before intentionally updating them. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (10)

External Script Fetching

High
Category
Supply Chain
Content
## Quick Start

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

# Generate podcast segment
infsh app run infsh/kokoro-tts --input '{
Confidence
97% confidence
Finding
`curl -fsSL https://cli.inference.sh | sh` is a classic arbitrary-code-execution pattern because it executes network-delivered shell content immediately in the user's environment. In skill documentation, this is especially risky because it normalizes unsafe installation behavior and can lead to full host compromise if the remote script is malicious or later becomes compromised.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description's trigger list includes generic phrases such as "podcast," "audio content," "voice over," and "multi voice," which are broad enough to match many unrelated requests. The file does not provide exclusion conditions or narrower activation constraints to distinguish when this skill should or should not activate.

Intent-Code Divergence

Medium
Confidence
90% confidence
Finding
The quick-start instructs users to execute a remote script directly via `curl ... | sh`, while the adjacent note attempts to reassure users about what the script does. Direct execution of fetched remote content is dangerous because users cannot meaningfully inspect what runs at execution time, and compromise of the host, transport, or script publisher could lead to arbitrary code execution on the user's machine.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The examples encourage sending user-provided document content to remote AI services without clearly warning that the content leaves the local environment. In a skill designed for transforming documents into podcast discussions, users may paste sensitive internal or copyrighted material, so the lack of an explicit privacy/data-sharing notice increases the risk of unintended disclosure.

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.

Context-Inappropriate Capability

Low
Confidence
76% confidence
Finding
The manifest frames the skill as an AI podcast and audio creation tool centered on TTS, music, and media merging. However, the documented workflow also invokes a general-purpose LLM (`openrouter/claude-sonnet-45`) to write scripts from prompts and transform arbitrary documents into discussions, which is a broader text-generation capability not clearly declared in the manifest's tool list.

Static analysis

No suspicious patterns detected.