Back to skill

Security audit

VN SKill for Windows

Security checks for vulnerabilities and agentic risk

Overview

This media-processing skill is mostly purpose-aligned, but it automatically downloads and silently installs an unverified Windows MSI without asking first.

Review before installing. Only use this skill if you are comfortable with it downloading and installing VN Tools CLI from GitHub and downloading some caption models on first use. Prefer a version that asks before installation and verifies the MSI hash and publisher signature.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
scripts/vn-tools-cli-install.ps1.txt:89
Finding

Unverified Remote MSI Is Downloaded and Silently Executed

Content
View full analysis
\scripts\vn-tools-cli-install.ps1.txt" $dst = Join-Path $env:TEMP "vn-tools-cli-install.ps1" Copy-Item -LiteralPath $src -Destination $dst -Force powershell -NoProfile -ExecutionPolicy Bypass -File $dst ``` ...[truncated 2817 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/vn-tools-cli-install.ps1.txt:22
Finding

Predictable Temporary MSI Path Permits Package Substitution

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (16)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill advertises fully local, on-device processing and says URLs/cloud files are unsupported, but elsewhere instructs the agent to download installers, Whisper models, and user-provided files. This is a trust-boundary mismatch that can mislead users and downstream systems about network activity and data handling.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill instructs the agent to copy and execute a PowerShell installer script using ExecutionPolicy Bypass, and to do so automatically without user confirmation. This introduces arbitrary code execution and system modification behavior unrelated to merely analyzing media files, greatly expanding the attack surface if the bundled script or its supply chain is compromised.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Broad triggers like 'edit video', 'process video', or reusing any referenced local media file can cause the skill to activate for requests outside its intended scope. In this skill, overbroad activation is more dangerous because activation can lead to automatic installation, downloads, and file processing side effects.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill says non-local inputs are not supported, but later instructs the agent to download files from URLs or chat attachments into a local working directory and reuse them. Such contradictory guidance can cause the agent to process remote content unexpectedly and undermines safe activation constraints.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill directs automatic installation and execution of a local script without a prominent safety warning or explicit consent, despite making persistent system changes. This weakens user awareness and approval for privileged actions, increasing the risk of unsafe execution in environments that assume skills are limited to task-specific processing.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 207)May include surrounding context.

md
- **No file identified:** If the user requests an action but neither attaches a
file nor mentions a specific file, ask which file to process. If the user
clearly references a previous file (e.g. "compress the video I just sent"),
reuse it without asking.

### 1.4 Command quick reference

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 214)May include surrounding context.

md
CLI binary: `& ${vn-tools-cli}` (resolved in § 1.1)


| Command          | Required args             | Key options                                                                                                                |
| ---------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `extract-audio`  | `<video>`                 | `-o <dir>` `-f mp3`                                                                                                        |
| `extract-frame`  | `<video>`                 | `-p first`                                                                                                                 |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 216)May include surrounding context.

md
| Command          | Required args             | Key options                                                                                                                |
| ---------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `extract-audio`  | `<video>`                 | `-o <dir>` `-f mp3`                                                                                                        |
| `extract-frame`  | `<video>`                 | `-p first`                                                                                                                 |
| `auto-captions`  | `<video>`                 | `-e <engine>` `-l <lang>` `-j <threads>` `[style flags]` `-o <dir>`                                                        |
| `add-caption`    | `<video> --srt <srt>`     | `--font-family` `--font-size` `--text-color` `--stroke-color` `--stroke-width` `--background-color` `--opacity` `-o <dir>` |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 217)May include surrounding context.

md
| Command          | Required args             | Key options                                                                                                                |
| ---------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `extract-audio`  | `<video>`                 | `-o <dir>` `-f mp3`                                                                                                        |
| `extract-frame`  | `<video>`                 | `-p first`                                                                                                                 |
| `auto-captions`  | `<video>`                 | `-e <engine>` `-l <lang>` `-j <threads>` `[style flags]` `-o <dir>`                                                        |
| `add-caption`    | `<video> --srt <srt>`     | `--font-family` `--font-size` `--text-color` `--stroke-color` `--stroke-width` `--background-color` `--opacity` `-o <dir>` |
| `compress-video` | `<video>`                 | `-r <resolution>` `--fps <fps>` `-b <kbps>` `--hdr` `-o <dir>`                                                             |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 222)May include surrounding context.

md
| Command          | Required args             | Key options                                                                                                                |
| ---------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `extract-audio`  | `<video>`                 | `-o <dir>` `-f mp3`                                                                                                        |
| `extract-frame`  | `<video>`                 | `-p first`                                                                                                                 |
| `auto-captions`  | `<video>`                 | `-e <engine>` `-l <lang>` `-j <threads>` `[style flags]` `-o <dir>`                                                        |
| `add-caption`    | `<video> --srt <srt>`     | `--font-family` `--font-size` `--text-color` `--stroke-color` `--stroke-width` `--background-color` `--opacity` `-o <dir>` |
| `compress-video` | `<video>`                 | `-r <resolution>` `--fps <fps>` `-b <kbps>` `--hdr` `-o <dir>`                                                             |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 221)May include surrounding context.

md
| `auto-captions`  | `<video>`                 | `-e <engine>` `-l <lang>` `-j <threads>` `[style flags]` `-o <dir>`                                                        |
| `add-caption`    | `<video> --srt <srt>`     | `--font-family` `--font-size` `--text-color` `--stroke-color` `--stroke-width` `--background-color` `--opacity` `-o <dir>` |
| `compress-video` | `<video>`                 | `-r <resolution>` `--fps <fps>` `-b <kbps>` `--hdr` `-o <dir>`                                                             |
| `compress-image` | `<image>`                 | `-f jpeg`                                                                                                                  |
| `concat-video`   | `<video1> <video2> [...]` | `-o <dir>`                                                                                                                 |
| `denoise`        | `<audio \| video>`        |                                                                                                                            |
| `cutout-video`   | `<video>`                 | `--feather <0-100>` `--expand <-20..20>` `-f mp4`                                                                          |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 223)May include surrounding context.

md
| `compress-video` | `<video>`                 | `-r <resolution>` `--fps <fps>` `-b <kbps>` `--hdr` `-o <dir>`                                                             |
| `compress-image` | `<image>`                 | `-f jpeg`                                                                                                                  |
| `concat-video`   | `<video1> <video2> [...]` | `-o <dir>`                                                                                                                 |
| `denoise`        | `<audio \| video>`        |                                                                                                                            |
| `cutout-video`   | `<video>`                 | `--feather <0-100>` `--expand <-20..20>` `-f mp4`                                                                          |

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill presents itself as a local tool with no cloud/API requirements, yet it depends on network downloads for software installation and Whisper model retrieval. While not inherently malicious, this hidden network dependency can surprise users, fail in restricted environments, and create supply-chain exposure.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation states that all processing runs locally and implies no cloud/network involvement, but the auto-captions feature requires one-time downloads for several Whisper engines. This can mislead users operating in offline, restricted, or privacy-sensitive environments into invoking a command that unexpectedly makes network requests, violating deployment assumptions and potentially exposing metadata such as IP address or download activity.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script downloads an MSI from GitHub at runtime even though the skill is described as local-only processing with no cloud/API dependency. This creates a supply-chain and transparency risk: users or downstream systems may trust the skill as purely local while it performs network retrieval and executes newly downloaded software without any integrity verification such as a pinned hash or signature check.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script silently installs software via msiexec using a downloaded MSI, which expands the skill from media processing into code acquisition and execution on the host. In this context, that is security-relevant because installation is a privileged persistence-enabling action and, if the download source or release artifact is compromised, it can lead to arbitrary code execution under the user context.

Content

No source excerpt is available for this finding.