Back to skill

Security audit

pruna

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to be a real Pruna media-suite installer, but it asks users to run unpinned online install commands that can add many changing skills at once.

Install only if you trust the PrunaAI repository and the `skills` CLI source at the time you run it. Prefer a pinned commit or reviewed release, avoid running the command with unnecessary secrets in the environment, and review the dependent skills before granting broad filesystem, network, or command access.

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:44
Finding
Unpinned Remote Skill Suite Installation## Vulnerability Details **File Location**: `SKILL.md:44-50` **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```markdown ## Install ```bash npx skills add PrunaAI/pruna-skills@pruna -y ``` After install, start a **new chat**. Your agent picks skills from the suite by name. ``` Similar installation commands are repeated for individual suite components in the tables that follow. ### Technical Analysis The documented installation command invokes the `skills` package through `npx` and installs Skill content from the remote `PrunaAI/pruna-skills` repository. Neither the command-line package nor the repository content is pinned to an immutable, reviewed version or commit, and no checksum or signature verification is specified. The `-y` option also suppresses interactive confirmation. Consequently, the content installed at execution time can differ from the content originally reviewed. The advertised suite contains 29 guide, tool, and workflow dependencies, but those dependency contents are not included in this project and therefore could not be audited. This creates a supply-chain trust boundary in which compromise or unauthorized modification of the package registry entry, repository, mutable reference, or downstream Skill content could expose users to attacker-controlled instructions or executable components. ### Attack Path 1. An attacker compromises, gains publishing access to, or otherwise modifies a remote package or repository component resolved by the installation command. 2. The attacker adds malicious Skill instructions, tool definitions, or executable content to the remotely resolved suite. 3. A user follows the documented command, and `npx` resolves the unpinned CLI while the installer retrieves the mutable remote Skill content. 4. The `-y` option allows installation to proceed without an explicit confirmation checkpoint. 5. The user start ...[truncated 970 chars]
Remediation
## Remediation Suggestions 1. Pin the `skills` CLI to a specific reviewed version rather than allowing `npx` to resolve the current release dynamically. 2. Pin `PrunaAI/pruna-skills` to an immutable Git commit or cryptographically immutable release artifact instead of a mutable Skill reference. 3. Publish a dependency lock file or equivalent manifest covering every transitive guide, tool, and workflow dependency. 4. Provide and verify cryptographic checksums or signatures before installation. 5. Remove `-y` from security-sensitive installation instructions, or display the exact source, revision, dependency set, and requested capabilities before confirmation. 6. Vendor reviewed Skill contents into the release when practical so that the audited artifact matches the installed artifact. 7. Review all 29 referenced dependencies for external downloads, executable scripts, credential handling, shell commands, and tool permissions before recommending installation. 8. Run installed Skills with least privilege, restricting filesystem access, network destinations, environment variables, API credentials, and executable tools to those required for the requested workflow.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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
94% confidence
Finding
The install instruction uses `npx skills` without pinning the package manager/tooling version, so execution may resolve to whatever version is current at install time. That creates a supply-chain risk where users could run changed or compromised code during installation, especially because `npx` fetches and executes packages dynamically.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This line instructs users to invoke `npx skills` without pinning the executed package version. Unpinned dynamic execution increases exposure to upstream compromise, typosquatting, or unexpected behavior changes at the moment the command is run.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The documentation references `npx skills` as an executable without an explicit fixed version. Because `npx` may download and run code on demand, leaving the tool unpinned creates a realistic supply-chain attack surface.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
An unpinned `npx skills` command can execute whatever version is currently served, making installs non-reproducible and vulnerable to upstream tampering. In a skill package that drives additional tooling and API usage, that risk propagates into a broader workflow.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This installation example relies on `npx skills` without fixing the executable version, which means users trust a mutable external package at runtime. That is a common supply-chain weakness because any compromised or changed upstream release could be executed automatically.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The line embeds an unpinned `npx skills` command, creating a risk of arbitrary code execution through dependency substitution or malicious upstream updates. Documentation-based execution guidance is security-relevant because users are likely to copy-paste it directly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
Using `npx skills` without a pinned version makes the trust boundary too broad: users are not just installing this skill, they are executing a mutable package manager-side tool. If the upstream package changes maliciously, the copied command can become an execution vector.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This tool install example again depends on unpinned `npx skills`, which is a supply-chain risk because it may fetch and execute an unexpected version. The repeated pattern increases exposure by normalizing copy-paste of unsafe install commands across the suite.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The command on this line uses an unversioned `npx skills` executable, which can change over time and execute remote code during install. Because this is a user-facing one-liner, it presents a practical social engineering vector if the upstream package is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The instruction invokes `npx skills` without pinning, which undermines reproducibility and introduces avoidable supply-chain risk. An attacker controlling or impersonating the resolved package could cause arbitrary code execution on the user's machine.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This line repeats the pattern of executing `npx skills` without a fixed version. In documentation for an installation workflow, that directly encourages users to run mutable third-party code with whatever permissions their shell has.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
An unpinned `npx skills` invocation is a true security concern because it relies on live package resolution and execution. In a package that also mentions API credentials and media tooling, compromise could lead to credential theft or unauthorized system actions beyond simple installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The installation snippet uses `npx skills` without an immutable version, allowing upstream changes to silently alter what code runs. This is especially risky in copy-paste documentation because users may execute it without inspection.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This command leaves the executed `skills` tool unpinned, creating a preventable supply-chain execution path. The risk is not theoretical: package compromise or namespace confusion can turn a benign install step into arbitrary code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The line references `npx skills` without constraining version or provenance, which means the actual code run is mutable over time. In practice, this weakens supply-chain integrity and makes forensic reproduction of incidents harder.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
An unpinned `npx`-executed tool is dangerous because it downloads and runs code at invocation time without guaranteeing the same artifact each run. That makes this a true vulnerability in installation guidance, even if the surrounding content is otherwise benign.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This install command inherits the same supply-chain issue: `npx skills` is not pinned and may resolve to a different or malicious package version in the future. Since users are expected to copy these commands directly, the exploitation path is straightforward.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The command executes `npx skills` without an exact version, leaving users exposed to remote package changes at runtime. In a suite that orchestrates external APIs and media processing, a compromised installer could have broader consequences than a simple package install.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This line uses the same unsafe pattern of unpinned `npx skills` execution. That creates a realistic arbitrary code execution risk through package compromise, typosquatting, or unauthorized upstream updates.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
Because `npx skills` is not pinned here, the line directs users to execute code whose identity may change over time. That is a true supply-chain vulnerability, not just a documentation quality issue, because it can directly affect endpoint security.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The instruction depends on unpinned `npx skills`, expanding trust to a mutable remote artifact. A compromised package could execute arbitrary shell actions, capture environment variables, or alter subsequent workflow setup.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This line continues the pattern of referencing `npx skills` without version pinning, which creates a non-deterministic execution path. Since the overall skill later references API keys and shell tooling, a compromised installer has meaningful post-exploitation opportunities.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The workflow install example uses unpinned `npx skills`, exposing users to the same supply-chain execution risk. Workflow-oriented users may be especially likely to run many such commands, multiplying the attack surface.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This command line leaves the `skills` executable unversioned, so the actual code run is mutable and externally controlled. That can enable arbitrary code execution if the package or resolution path is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The `npx skills` invocation here is unpinned and therefore vulnerable to upstream package changes. In copy-pasteable skill docs, such patterns materially increase the chance that users will execute unreviewed code.

Static analysis

No suspicious patterns detected.