Back to skill

Security audit

video-edit-strategy

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed video-edit planning helper with no evidence of hidden code, data theft, persistence, or destructive behavior.

Installers should treat this as a Chinese-language video-edit strategy skill. It is appropriate for planning edits, but downstream executors should use a per-run private temp directory, validate media paths, avoid arbitrary shell commands, and ask before probing files when user intent is unclear.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:134
Finding
Predictable Shared Temporary Paths Permit File Collisions and Symlink Attacks## Vulnerability Details **File Location**: `SKILL.md:134-135`; `strategy-schema.md:274-276` **Vulnerability Type**: Predictable and shared temporary-file paths **Risk Level**: Medium **Relevant source excerpt from `SKILL.md:134-135` (English translation):** ```text 3. File paths use the original paths provided by the user; intermediate products use the `/tmp/ve_strategy/` prefix. 4. Steps in `execution_plan` must be serially executable; later steps may depend on the output of preceding steps. ``` **Relevant source excerpt from `strategy-schema.md:274-276` (English translation):** ```text - `execution_plan[].inputs` may use the `output` path of a preceding step. - Intermediate product paths uniformly use the `/tmp/ve_strategy/` prefix. - The final output path is written to `project.output_path`. ``` Examples throughout `examples.md`, including lines 222-326, 484-536, and 712-814, use predictable names such as: ```text /tmp/ve_strategy/merged_raw.mp4 /tmp/ve_strategy/with_text.mp4 /tmp/ve_strategy/clips/s1.mp4 ``` ### Technical Analysis The Skill requires generated execution plans to place intermediate media in a fixed, shared directory. It does not require a unique per-execution directory, restrictive directory permissions, exclusive file creation, ownership checks, or symbolic-link rejection. On systems where another user or process can write under `/tmp`, predictable names can be created before the downstream FFmpeg-related Skill runs. A pre-created path may be an attacker-controlled regular file or a symbolic link to another location. If the downstream tool follows symbolic links or overwrites existing files, it may read attacker-controlled content or overwrite a file selected by the attacker. Serial dependencies amplify this issue because subsequent steps trust prior output paths without requiring verification that the files were created by the current execution. Concurrent executions can also overwrite ...[truncated 1412 chars]
Remediation
## Remediation Suggestions 1. Create a cryptographically unpredictable, per-execution temporary directory using the platform's secure temporary-directory API. 2. Set directory permissions to `0700` and verify that the current process owns the directory. 3. Generate unpredictable intermediate filenames instead of fixed names such as `merged_raw.mp4`. 4. Create outputs atomically and exclusively so existing paths cause failure rather than overwrite. 5. Refuse symbolic links and validate ownership and file type before every intermediate read or write. 6. Keep every generated intermediate path inside the canonicalized per-run directory and reject path traversal or directory escape. 7. Prevent one execution from accepting intermediate files created by another execution. 8. Clean up only the unique directory created by the current run; never recursively remove a shared fixed path. 9. Document these requirements in both `SKILL.md` and `strategy-schema.md` so downstream Skills enforce the same protections.
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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The manifest description and instruction text are entirely in Chinese and position the skill for Chinese short-video platforms and workflows, but they do not state that language output should follow user preference. This can violate language/locale choice expectations because the skill appears to impose a specific language context without opt-in.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger conditions are broad enough to capture ordinary video-editing requests without strong disambiguation, which can cause this planning skill to activate when users did not explicitly ask for a strategy artifact. In a multi-skill agent, that increases the chance of unintended tool routing, unnecessary media probing, and downstream execution planning based on user-supplied file paths.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
This markdown file presents all headings, scenario descriptions, overlay text, and execution descriptions only in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale limitation is explicitly justified, which is not present here.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The schema explicitly permits `execution_plan` steps with `action: "probe"` and `skill_ref: "shell"`, which grants a downstream path to generic shell execution rather than a narrowly scoped media metadata capability. In a strategy-generation context, this broadens the trusted interface unnecessarily and can enable command-injection or arbitrary command execution if untrusted paths or parameters are later interpolated by downstream tooling.

Static analysis

No suspicious patterns detected.