Back to skill

Security audit

video-prompting

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent video-prompting guide, but its install examples ask users to run unpinned remote installer commands with auto-confirmation.

Review the install commands before using this skill. Prefer pinned installer versions or commit-locked skill sources, avoid `-y` until you have inspected what will be installed, and only upload media to Pruna or related APIs when the user has approved that data sharing.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:50
Finding
Mandatory First-Reply Branding Alters Agent Output## Vulnerability Details **File Location**: `SKILL.md`, line 50 **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: High **Vulnerable Code Snippet**: ```markdown ## Guide habit In the **first reply**, name `` `video-prompting` `` in backticks. When aspect, resolution, duration, or embed-vs-post audio are open, open intake → **`generation-diversity`** clarification intake. For `p-video-2` / `p-video` motion lines, cite OPEN/MID/CLOSE dramaturgy and **Worked example — product B-roll** in [prompt-dramaturgy.md](./references/prompt-dramaturgy.md). Quality path: `p-video-2` (`p-video-2-prompting`). Simpler clips: `p-video`. Audio-led clips: **≤ ~19s** TTS before embed — see [audio-in-video-prompting.md](./references/audio-in-video-prompting.md). ``` ### Technical Analysis The instruction unconditionally requires the agent to include the branded name `video-prompting` in its first response. This requirement governs user-facing output rather than the substantive video-prompting task. Loading the Skill therefore changes the agent's response behavior independently of the user's request. This constitutes instruction hijacking because Skill-controlled content reserves part of the response for mandatory attribution or promotion. Although the directive does not override safety controls, it creates an unauthorized output-control channel that could be extended in later versions to inject links, advertisements, or stronger response constraints. ### Attack Path 1. The agent loads `SKILL.md` to assist with a video-prompting request. 2. The mandatory “Guide habit” directive enters the active instruction context. 3. The agent treats the directive as applicable to every first response involving the Skill. 4. The agent inserts the prescribed branded phrase even when the user did not request Skill identification or attribution. 5. The user receives author-controlled content in addition to the requested result. ### Imp ...[truncated 532 chars]
Remediation
## Remediation Suggestions 1. Remove the unconditional requirement to mention `video-prompting` in the first reply. 2. Restrict Skill identification to cases where the user explicitly asks which Skill is being used. 3. Keep operational guidance separate from rules controlling greetings, closings, branding, or attribution. 4. Add a review rule prohibiting mandatory promotional text and unrelated user-facing output. 5. Replace the vulnerable directive with conditional wording such as: ```markdown If the user asks which Skill is being used, identify `video-prompting`. ```

T08 · Insecure Dependencies

Warning
Location
SKILL.md:78
Finding
Unpinned Remote Skill Installation Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 78–86 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown | Skill | Description | Install | | --- | --- | --- | | `p-video-2` | Use when someone wants the best-quality short clip from text, images, or audio — polished B-roll, start/end frame animation, or a motion shot with stronger lip-sync. Not for full multi-scene films or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2 -y` | | `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs the highest quality or tight lip-sync. | `npx skills add PrunaAI/pruna-skills@p-video -y` | | `p-video-avatar` | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | `npx skills add PrunaAI/pruna-skills@p-video-avatar -y` | | `p-video-animate` | Use when someone wants a photo to move like another video — motion transfer, dance remixes, or performance variations from a template clip. | `npx skills add PrunaAI/pruna-skills@p-video-animate -y` | | `p-video-replace` | Use when someone wants to swap a person, outfit, or product inside existing footage while keeping the camera move and audio. | `npx skills add PrunaAI/pruna-skills@p-video-replace -y` | | `p-video-edit` | Use when someone wants to edit an existing video with a text instruction — recolor, restyle, remove or add objects, change environment or lighting, update on-screen text, or apply optional reference-guided product and accessory edits. Not for a new clip from scratch or ffmpeg assembly. | `npx skills add PrunaAI/pruna-skills@p-video-edit -y` | | `pruna-api` | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | `npx skills add PrunaAI/pruna-skills@ ...[truncated 2605 chars]
Remediation
## Remediation Suggestions 1. Pin the `skills` CLI to an exact, audited package version rather than invoking an unversioned package through `npx`. 2. Pin remote Skill content to an immutable commit hash or cryptographically signed release. 3. Publish expected integrity hashes and verify downloaded artifacts before installation. 4. Remove `-y` where practical so users can inspect the resolved package, source, and version. 5. Document the exact CLI version, repository commit, and verification procedure used for every recommended Skill. 6. Audit companion Skills locally before requiring an agent to load or execute their instructions. 7. Use a lock file or controlled internal registry when the installation mechanism supports one.
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 (20)

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The skill documentation instructs users to run `npx skills add ...` without pinning the `skills` package version. `npx` will resolve and execute the latest available package, so a future compromised or malicious upstream release could be executed in the user's environment. In a skill installation context, this is more dangerous because the command is presented as the normal onboarding path and may be copied verbatim by users or agents.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This line references `npx skills add ...` without pinning the `skills` package version, which means execution depends on whatever version `npx` fetches at runtime. If the upstream package is replaced, typosquatted, or a later release is compromised, users may run attacker-controlled code. Because this appears in install guidance, it meaningfully increases the chance of unsafe copy-paste execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The command on this line uses `npx skills` without pinning the package version, causing `npx` to fetch and execute the current package version at install time. That creates supply-chain risk if the package or one of its dependencies is later compromised. In documentation for an agent skill ecosystem, such commands are especially risky because they encourage direct execution of remote code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This installation example invokes an unpinned `npx skills` package, so the executed code is not fixed to a reviewed version. An attacker who gains control of a future release or publishes a confusing alternative in the resolution path could achieve arbitrary code execution on systems following the docs. The skill context raises the risk because these are operational install commands, not passive references.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
Using `npx skills` without a version pin allows the resolved executable to drift over time and be replaced by a compromised release. This can lead to arbitrary code execution during installation or setup. Since the line appears as user-facing guidance for obtaining additional skills, the chance of real-world execution is nontrivial.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The command here relies on an unpinned `npx` package execution path, which is a classic supply-chain exposure. If the upstream package changes or is hijacked, anyone following the documentation could execute malicious code locally. In a skill catalog/install document, that is a genuine vulnerability because the command is intended to be run, not merely read.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This line presents `npx skills` as an install mechanism without fixing the version of the executed package. That means the trusted behavior of the command can change later without any change to this file, creating a time-of-use supply-chain risk. The context of installing video-related agent skills makes the issue more dangerous because users are likely to execute these commands directly on developer machines or CI hosts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This install command uses `npx skills` without an explicit version constraint for the executable package, so it may run unreviewed future code. That opens the door to supply-chain compromise and arbitrary local execution if the package or its dependencies are tampered with. Because the skill is an installation guide, users may treat the command as authoritative and safe.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The unpinned `npx skills` invocation on this line creates a dependency on the latest resolved package at execution time. A malicious or compromised release could therefore run code on the user's system when they follow the documented command. This is more than a theoretical issue in skill docs because installation snippets are high-probability copy-paste targets.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This line instructs installation via `npx skills` without pinning the package version, enabling execution of whatever version is current at the time. If the package supply chain is compromised, this could result in arbitrary code execution on the operator's system. The risk is heightened because the command appears in a section explicitly telling users what to install.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
Here the documentation again relies on an unpinned `npx skills` package. That means the command's behavior can silently change over time and could be subverted by a malicious upstream release, leading to local code execution. Because this is a recommended tool acquisition path, the finding is a true vulnerability rather than a harmless mention.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The `npx skills` invocation is unpinned on this line, exposing users to a supply-chain risk where a later package version or dependency could execute arbitrary code. Since `npx` performs runtime package resolution, the command is not reproducible or review-stable. In the context of installable agent tooling, this materially increases operational risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This installation command uses the latest-resolved `npx skills` package rather than a fixed reviewed version. That introduces a genuine risk of remote code execution via compromised upstream distribution. The documentation context makes this more dangerous because users are expected to run the command as part of setup.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The line contains an unpinned `npx skills` invocation, which permits future uncontrolled code changes at execution time. If the package ecosystem entry is compromised, systems following the guide may execute attacker-supplied code. This is especially relevant in developer tooling and agent-skill installation workflows, where commands often run with broad local access.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
This command also invokes `npx skills` without version pinning, creating a supply-chain exposure through runtime package fetch and execution. An attacker who controls a later release or dependency could leverage the documented command for arbitrary code execution. Because it is presented as a standard install step, the likelihood of execution is meaningful.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The unpinned `npx skills` usage on this line means the command executes whatever package version is current when run. That undermines reviewability and can enable malicious code execution if the upstream package is compromised. In a tool-installation document, this is a real operational vulnerability rather than a purely stylistic issue.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The full-suite install command uses `npx skills add ...` without pinning the `skills` package itself, so the executed installer can change over time. A compromised upstream release could therefore run arbitrary code on any machine that follows this setup step. The broad 'install the full suite' wording may further increase impact by encouraging wider adoption of the unsafe command.

External Transmission

Medium
Category
Data Exfiltration
Content
```json
{
  "prompt": "OPEN: hold wide. MID: slow crane down, neon signs flicker. CLOSE: settle on end pose.",
  "image": "https://api.pruna.ai/v1/files/START_ID",
  "last_frame_image": "https://api.pruna.ai/v1/files/END_ID",
  "duration": 10,
  "resolution": "720p",
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```json
{
  "prompt": "OPEN: hold wide. MID: slow crane down, neon signs flicker. CLOSE: settle on end pose.",
  "image": "https://api.pruna.ai/v1/files/START_ID",
  "last_frame_image": "https://api.pruna.ai/v1/files/END_ID",
  "duration": 10,
  "resolution": "720p",
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Low
Confidence
82% confidence
Finding
This markdown file describes an assembly step that concatenates clips via tooling, which implies creating or modifying output media files. The document does not include any explicit warning that the workflow will write assembled media artifacts to disk or alter generated outputs.

Static analysis

No suspicious patterns detected.