Back to skill

Security audit

p-video-2

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Pruna video-generation guide, but it asks users or agents to install mutable remote skill packages with unpinned npx commands.

Before installing, review and preferably pin the referenced PrunaAI skill packages and the skills runner to known versions or commits. Use a least-privileged environment, expect prompts/images/audio to be sent to Pruna, and avoid disabling safety controls unless your own policy allows it.

Vulnerability Patterns
  • 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
  • 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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:17
Finding
Unpinned Runtime Dependencies Enable Supply-Chain Compromise## Vulnerability Details **File Location**: `SKILL.md`, lines 17-22 **Vulnerability Type**: Unpinned npm runner and mutable GitHub-hosted skill dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown | `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` | | `video-prompting` | Use when crafting video or motion prompts for any generative model — dramaturgy, camera, physics-safe motion, frame anchors, and clip chaining. | `npx skills add PrunaAI/pruna-skills@video-prompting -y` | | `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generative audio model — director style, song structure, and post-production layering. | `npx skills add PrunaAI/pruna-skills@audio-prompting -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@pruna-api -y` | Or install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y` ``` Equivalent unpinned installation commands also appear at `SKILL.md:67-72` and `SKILL.md:205-212`. ### Technical Analysis The documented prerequisite workflow invokes the `skills` npm package through `npx` without specifying an audited package version. It then installs skill content from `PrunaAI/pruna-skills` using symbolic skill selectors rather than immutable repository commit hashes. The `-y` option suppresses interactive confirmation. Consequently, the code and instructions executed or loaded at installation time can differ from what was reviewed. A malicious npm release, compromised upstream repository, compromised maintainer account, or unauthorized modification of a mutable dependency could inject arbitrary code or hostile agent instructions into the installation process. No checksum, ...[truncated 1563 chars]
Remediation
## Remediation Suggestions 1. Pin the `skills` npm runner to a reviewed exact version, for example `npx skills@X.Y.Z`, rather than allowing `npx` to resolve the latest release. 2. Pin every external skill dependency to an immutable, reviewed commit hash or signed release tag. 3. Record and verify cryptographic checksums or provenance signatures before installing external content. 4. Use a lockfile or equivalent dependency manifest that captures all resolved versions and integrity metadata. 5. Remove `-y` where practical so users can inspect the package and source before installation. 6. Run installation in a sandbox or least-privileged environment with restricted filesystem, credential, and network access. 7. Periodically review pinned dependencies and update them through a controlled process that includes source inspection and integrity verification.
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 (31)

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The skill instructs users to run `npx skills add ...` without pinning an exact immutable version or commit, which allows the fetched package contents to change over time. If the upstream package, dependency chain, or registry distribution is compromised, users may execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
This installation command references `npx skills` without an immutable pinned tool/package version, creating a supply-chain exposure. Future package updates or a compromised publish could alter what gets executed on user systems.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The command relies on unpinned remote package resolution through `npx`, so installation behavior is not reproducible or integrity-assured. That makes downstream users vulnerable to registry or maintainer compromise affecting executed code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
Running `npx skills add ...` without strict version pinning exposes users to supply-chain drift and possible arbitrary code execution from changed packages. Because `npx` may fetch and run remote code, integrity matters materially here.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The 'full suite' installation command pulls a broad remote package set without immutable pinning, increasing attack surface and blast radius if the upstream package is altered maliciously. This is especially risky because it encourages one-step execution of fetched code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This alternate-skill installation command again uses `npx skills` without a fixed version, preserving the same supply-chain execution risk. Users may assume the command is safe because it appears in documentation, making compromise more impactful.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The skill references a remote install path with no immutable version pin. That permits unreviewed future package changes to be executed in the user's environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This unpinned `npx skills add` command creates a reproducibility and trust problem because the installed artifact can change independently of the skill document. A compromised package or dependency could lead to arbitrary code execution on install.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The command invites execution of remotely resolved code with no version pinning, which is a standard supply-chain weakness. In documentation intended for agent workflows, this can propagate unsafe install practices at scale.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
An unpinned installation reference means the behavior of this skill depends on mutable upstream content. If that content is modified or hijacked, users may execute malicious code during setup.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This documentation continues the pattern of non-deterministic `npx` installation commands, which creates a genuine supply-chain exposure rather than a purely stylistic issue. The risk is amplified because users are likely to copy-paste these commands.

External Transmission

Medium
Category
Data Exfiltration
Content
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
Confidence
60% 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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### Upload for image-to-video / frame anchors

```bash
curl -X POST "https://api.pruna.ai/v1/files" \
  -H "apikey: ${PRUNA_API_KEY}" \
  -F "content=@/path/to/first-frame.png"
```
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
### First / last frame (visual transition)

```bash
curl -X POST 'https://api.pruna.ai/v1/predictions' \
  -H 'Content-Type: application/json' \
  -H "apikey: ${PRUNA_API_KEY}" \
  -H 'Model: p-video-2' \
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The related-skill install command relies on mutable remote package resolution, so future content can differ from what was reviewed. That can turn documentation into a code-execution vector through supply-chain compromise.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This is another unpinned `npx skills` invocation that may fetch and execute changed code from the registry. The issue is consistent across the file and should be treated as a real security weakness.

Static analysis

No suspicious patterns detected.