Back to skill

Security audit

alibabacloud-video-editor

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent cloud video-editing integration, but it asks users to grant and persist powerful cloud credentials in ways that are broader and less protected than the task requires.

Review this skill before installing. Use a dedicated least-privileged Alibaba RAM identity, avoid full ICE/OSS access unless truly necessary, do not store long-lived keys in shell startup files, prefer short-lived or profile-based credentials, and run it in an isolated environment with pinned dependencies. Expect paid cloud jobs, persistent OSS outputs/templates, and possible scratch-frame artifacts during verification.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T08 · Insecure Dependencies

Warning
Location
scripts/requirements.txt:9
Finding

Unpinned and Unhashed Executable Python Dependencies

Content
View full analysis
=0.3.12 # Credential management — default chain: env vars, aliyun CLI profile # (~/.aliyun/config.json), ~/.alibabacloud/credentials.ini, ECS RAM role. # >=1.0.2 is required twice over: it is the floor tea-openapi 0.4.x depends on, # and the aliyun CLI profile provider does not exist before 1.x — with an older # release `aliyun configure` alone cannot authenticate (see SKILL.md §1.1). alibabacloud-credentials>=1.0.2 # OpenAPI utilities alibabacloud-openapi-util>=0.2.2 # Tea utilities alibabacloud-tea-util>=0.3.13 ``` ### Technical Analysis The Skill directs users to execute `pip install -r scripts/requirements.txt`, but every dependency uses an open-ended minimum-version constraint. No upper bounds, lock file, or package hashes are supplied. As a result, installation does not necessarily reproduce the package versions reviewed or tested by the Skill author. Pip may resolve any later version published under these package names. Python packages can execute code during installation and subsequently run code when imported by `video_editor.py`. The dependency names are consistent with the declared Alibaba Cloud integration, and the audit found no evidence of typosquatting or an intentionally malicious package. The vulnerability is the absence of controls ensuring that installed artifacts match reviewed artifacts. ### Attack Path 1. An attacker compromises a dependency publisher account, package-index account, or upstream release process. 2. The attacker publishes a newer malicious version satisfying one of the `>=` constraints. 3. A user follows the documented installation command. 4. Pip resolves and installs the malicious release. 5. Malicious code executes during installation or when the Skill imports the package ...[truncated 829 chars]
Remediation
View remediation
=` constraints. 3. Record package hashes and install with pip's `--require-hashes` option. 4. Fetch packages only from a trusted, explicitly configured package index. 5. Test dependency updates in an isolated environment before updating the lock file. 6. Add automated vulnerability and provenance checks for every dependency update. 7. Use a dedicated virtual environment with minimal filesystem and cloud permissions. 8. Document a controlled exception process if compatibility requires multiple approved versions rather than one exact version. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:47
Finding

Long-Lived Cloud Credentials Persisted in Plaintext Shell Startup Files

Content
View full analysis
' >> ~/.zshenv echo 'export ALIBABA_CLOUD_ACCESS_KEY_SECRET=' >> ~/.zshenv ``` The same section later recommends equivalent persistence for the optional model credential: ```text `DASHSCOPE_API_KEY` lets `scripts/frame_qa.py` check the finished video with a multimodal model. It is a separate credential from AK/SK — AK/SK cannot call model inference. Create the key in the Model Studio console → API-KEY, then persist it with `echo 'export DASHSCOPE_API_KEY=sk-xxxxxxxx' >> ~/.zshenv` (every zsh session, incl. IDE terminals) and open a new shell. Use `~/.zshrc` instead if only interactive terminals need it; do not set it in both. ``` ### Technical Analysis These instructions cause long-lived cloud secrets to be stored as plaintext in a shell startup file and exported into every applicable shell session. In particular, `.zshenv` is read broadly by zsh, including non-interactive shells, so its use exposes credentials to more processes than the video-editing workflow requires. The scripts themselves do not hardcode or intentionally print the access-key secret. They use Alibaba Cloud's default credential chain, which is appropriate for the declared cloud functionality. The weakness is the recommended secret-storage mechanism, not the need to authenticate. Plaintext shell persistence increases exposure through: - Processes inheriting the environment. - Diagnostic tools and support bundles that collect environment variables. - Accidental disclosure of dotfiles or home-directory backups. - Other software running under the same local account. - Shell configuration synchronization or source-control ...[truncated 1466 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
references/ram-policies.md:48
Finding

Documentation Recommends Cloud Permissions Broader Than the Required Task Scope

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
Findings (63)

Tainted flow: 'req' from os.environ.get (line 79, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/omni_segment.py (reported line 83)May include surrounding context.

python
ENDPOINT, data=json.dumps(payload).encode(),
        headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"})
    try:
        with urllib.request.urlopen(req, timeout=600) as resp:
            data = json.loads(resp.read().decode())
    except urllib.error.HTTPError as exc:
        print(f"HTTP {exc.code}: {exc.read().decode()[:800]}", file=sys.stderr)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill claims content analysis should be supplied upstream, yet it also instructs the agent to perform ASR, transcript extraction, snapshots, and ffprobe-based inspection itself. That mismatch matters because it broadens data handling and local/tool execution beyond what a caller would expect from the declared purpose, increasing the chance of overcollection or misuse of media content.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file makes a strong assurance that 'nothing is downloaded to the user's machine,' but later contradicts that by instructing local download of signed snapshot frames. This kind of contradictory security guidance is dangerous because operators may rely on the stronger claim when handling sensitive customer media, leading to accidental local data retention and policy violations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script violates the stated skill boundary by using local curl and ffmpeg to fetch and generate media artifacts. In this skill context, that is more dangerous than usual because the manifest explicitly narrows permitted local processing; bypassing that boundary increases risk of unreviewed media parsing, SSRF, and unintended local artifact generation outside the service's intended trust model.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest describes Alibaba Cloud ICE video editing, intelligent-production jobs, template inspection, output URL verification, and explicitly says local ffmpeg must never be used except for streamed audio analysis. This file additionally submits ASR jobs, creates/reuses snapshot templates, exports and decompiles timelines, signs OSS URLs via a shell script, and fetches subtitle files over the network, which materially expands the skill beyond the declared scope and the stated limit on local tooling.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill advertises broad capabilities that include shell, file, network, and environment access, but it does not declare any explicit tool scope or permission boundaries. In an agent setting, that increases the blast radius of prompt injection or operator error because the model may invoke powerful tools without a least-privilege contract visible to the host or reviewer.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
80% confidence
Finding

The skill is designed to create persistent cloud-side artifacts such as templates, rendered outputs, OSS objects, and project state references across sessions. That persistence is not inherently malicious, but it does introduce data-retention and unintended-access risk if users are not clearly informed that media, templates, and signed-access workflows may outlive the current interaction.

Content

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

md
---
# Video Editor Skill
Edit video in the cloud (Alibaba Cloud ICE) — no local ffmpeg. Three modes:
- **Timeline editing** (`SubmitMediaProducingJob`) — assemble several clips: you write a Timeline JSON, the script submits a producing job, polls it, and returns the output video URL.
- **Normal templates** (`AddTemplate`, `Type=Timeline`) — store a parameterized Timeline Config, inspect its `ClipsParam` contract, and repeatedly render it with replacement text/media → `references/22-normal-templates.md`.
- **Intelligent production** (`SubmitIProductionJob`) — run **one algorithm over one media file** (smart cover, logo/subtitle erasure, caption extraction, matting, beauty, H→V, audio denoise/mixing/demix/analysis). No Timeline involved → §7.1 and `references/13-intelligent-production.md`.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% 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 31)May include surrounding context.

pip install -r "$SKILL_DIR/scripts/requirements.txt"

text

AK/SK (§1.1) and an OSS output bucket (§1.2) are required — without them, stop and guide the user. `DASHSCOPE_API_KEY` (§1.3) and ffmpeg (§1.4) are optional: when they are missing, verify by reading **cloud snapshot frames** with your own vision instead (§9), and never skip verification.

### 1.1 Alibaba Cloud credentials (required)

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% 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 398)May include surrounding context.

pip install -r "$SKILL_DIR/scripts/requirements.txt"

text

AK/SK (§1.1) and an OSS output bucket (§1.2) are required — without them, stop and guide the user. `DASHSCOPE_API_KEY` (§1.3) and ffmpeg (§1.4) are optional: when they are missing, verify by reading **cloud snapshot frames** with your own vision instead (§9), and never skip verification.

### 1.1 Alibaba Cloud credentials (required)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
84% confidence
Finding

The skill documentation suggests a sudo mv installation path for the Alibaba CLI. In an agent or semi-automated environment, encouraging privileged system modification raises risk of unintended host changes or abuse if instructions are followed automatically or with insufficient scrutiny.

Content

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

bash
# Option A — aliyun CLI (writes a reusable profile; recommended). Install if `aliyun` is missing:
brew install aliyun-cli   # macOS; or fetch a binary and `tar xzf` it + `sudo mv aliyun /usr/local/bin/`
# Binaries: https://aliyuncli.alicdn.com/aliyun-cli-darwin-arm64-latest.tgz (macOS), https://aliyuncli.alicdn.com/aliyun-cli-linux-amd64-latest.tgz (swap amd64→arm64), https://aliyuncli.alicdn.com/aliyun-cli-windows-amd64-latest.zip (put aliyun.exe on PATH)
aliyun version            # verify the install — aliyun CLI >= 3.3.3 required (upgrade: brew upgrade aliyun-cli, or re-download the binary)
aliyun configure          # prompts for AccessKey ID / Secret / region

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger list is broad and based on common terms like 'mute,' 'mixing,' and 'extract audio,' which can cause the skill to be invoked in contexts where the user did not intend cloud media processing. In an agentic environment, overbroad routing can lead to unintended handling of user media URLs or modification requests, increasing the chance of privacy-impacting or disruptive actions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest frames this skill as using Alibaba Cloud ICE for timeline editing, rendering, and related cloud media operations, and explicitly limits local processing to streamed audio analysis while forbidding local ffmpeg media generation/conversion/extraction. This section adds a separate local scripts/subtitle_localize.py workflow for translation retiming, glossary enforcement, SRT emission, and non-zero build failures, which is not an obvious requirement of the stated cloud-editing purpose and expands the skill into local subtitle-processing/tooling.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The instruction "One language per timeline" imposes a language/locale constraint in natural language and states that multilingual output should never be mixed on one track. The file does not frame this as an optional workflow choice, ask for user preference, or justify it as a region- or compliance-specific requirement.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file includes invocation guidance such as "Add a title" and "Add subtitles," which are generic phrases likely to overlap with normal user requests in many contexts. The section does not provide limiting context, explicit scope constraints, or negative examples to clarify when this skill should or should not activate.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown says to use the slideshow template when users mention phrases like "Make photos into a video," "Slideshow," or "Photo collection," which are broad requests that could appear in many contexts. It does not provide exclusion conditions or negative examples to clarify when the template should not be invoked, increasing the risk of unintended activation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger suggestions are broad natural-language phrases such as 'edit together' and 'video splicing' that overlap heavily with ordinary user requests. In an agent environment, this can cause the skill to be invoked when the user did not specifically intend to use Alibaba Cloud ICE, leading to unintended external processing of media URLs, unexpected costs, or disclosure of user-provided media metadata to a third-party service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation includes an S3 configuration example containing live credential fields (AccessKeyId and AccessKeySecret) with no warning about secret handling, storage, logging, or least-privilege use. In an agent skill context, users may paste real keys into prompts, configs, traces, or version control, creating a realistic path to credential exposure and unauthorized access to buckets or broader cloud resources.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The callback section tells users to provide a NotifyAddress but does not warn that job results will be sent to an external HTTP(S) endpoint or queue, which can expose metadata, output URLs, or processing results to unintended destinations. In an automation/agent setting, this omission increases the chance of sending sensitive job data to untrusted endpoints or leaking it through misconfigured webhooks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The document explicitly instructs users to use an already-trained cloned voice to reproduce a specific speaker's timbre, but it provides no guardrails about consent, authorization, or lawful basis. In a media-production skill, that omission can enable impersonation, deceptive localization, or misuse of biometric voice likeness, especially because the feature is framed as a normal supported workflow.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The style notes prescribe specific zhi* voices that are conventionally Chinese-language oriented, but the file does not state that narration is limited to Chinese content or that users may choose another language. This can amount to a language/locale constraint presented as default guidance without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.