Back to skill

Security audit

Vidu official video generation. Image to video / Text to video / Reference to video / Text to image / Reference to image / Video edit / Image edit

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its Vidu media-generation purpose, but it asks users to install a mutable external CLI that downloads a platform binary, so the reviewed artifact does not fully pin the code that will run.

Review before installing. Use a least-privilege Vidu token, avoid sensitive or regulated media/prompts unless approved for Vidu processing, keep VIDU_DEBUG off in shared logs, and prefer a pinned, verified vidu-cli release instead of installing a mutable latest package globally.

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:7
Finding
Unpinned Third-Party Installation with Postinstall Binary Retrieval<![CDATA[ ## Vulnerability Details **File Locations**: - `SKILL.md:7` - `SKILL.md:95` - `SKILL.md:164` - `README.md:28-29` - `README.md:40` - `README.zh.md:28-29` - `README.zh.md:40` **Vulnerability Type**: Unpinned executable dependency and externally retrieved platform binary **Risk Level**: Medium ### Vulnerable Code Snippets `SKILL.md:7`: ```yaml metadata: {"openclaw":{"requires":{"bins":["node","npm","vidu-cli"],"env":["VIDU_TOKEN"]},"primaryEnv":"VIDU_TOKEN","install":[{"id":"vidu-cli","kind":"node","package":"vidu-cli","bins":["vidu-cli"],"label":"Install vidu-cli via npm (requires Node.js >=14; postinstall downloads a platform binary from GitHub)"}]}} ``` `SKILL.md:95`: ```markdown 1. `npm install -g vidu-cli@latest` (requires Node.js >=14; postinstall auto-downloads the platform binary) ``` `SKILL.md:164`: ```markdown If `node` / `npm` / `vidu-cli` cannot be installed, this skill cannot run. Require **vidu-cli latest** (via `npm install -g vidu-cli@latest`, Node.js >=14) and point users to **references/parameters.md** for parameter details. ``` `README.md:28-29`: ```bash # Via npx skills (recommended, supports Claude Code, Cursor, Copilot, and 40+ agents) npx skills add shengshu-ai/vidu-skills ``` `README.md:40`: ```bash npm install -g vidu-cli@latest ``` `README.zh.md:28-29`: ```bash # 通过 npx skills(推荐,支持 Claude Code、Cursor、Copilot 等 40+ agents) npx skills add shengshu-ai/vidu-skills ``` `README.zh.md:40`: ```bash npm install -g vidu-cli@latest ``` ### Technical Analysis The installation instructions use the mutable `latest` npm tag and an unversioned `npx` installation command. Consequently, the installed code is not bound to a specific version that was reviewed during this audit. The Skill metadata also explicitly states that the `vidu-cli` npm postinstall process downloads a platform-specific binary from GitHub. That binary is not present in the audited project, and the documentation does not specify a release version, checksum, si ...[truncated 2090 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace mutable package references with reviewed, exact versions, for example: ```bash npm install -g vidu-cli@<reviewed-exact-version> ``` 2. Pin the Skill installer to a specific immutable release, tag, or commit rather than relying on the current repository state. 3. Publish the exact GitHub release URL and version used for each supported platform binary. 4. Publish SHA-256 checksums for all downloaded binaries and make the installer verify the selected binary before execution. 5. Prefer cryptographic release signatures with a documented verification key and fail installation if signature verification fails. 6. Ensure the npm package pins the expected binary release rather than resolving a mutable latest release at installation time. 7. Consider distributing platform binaries directly in signed, versioned release artifacts where practical, reducing reliance on dynamic postinstall retrieval. 8. Document that users should not install the package with `sudo` or from an administrator account. Installation and runtime should use a dedicated, least-privileged account where feasible. 9. Recommend a least-privilege Vidu token and avoid exposing unrelated credentials in the CLI process environment. 10. Add a reproducible release and dependency-review process covering both the npm wrapper and the downloaded native binary. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The README instructs users to run `npx skills add shengshu-ai/vidu-skills` without pinning a specific version. This creates a supply-chain risk because future publishes or a compromised upstream package could cause users to install and execute unexpected code when following the documentation.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The README promotes upload, task submission, status retrieval, and output download against a remote API but does not clearly warn users that local media, prompts, audio, and generated outputs are transmitted to and processed by an external service. In an agent-skill context, this omission increases the chance that users expose sensitive files or confidential prompts without informed consent.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The README promotes uploading local images and submitting text, audio, and video content to a remote API, but it does not disclose privacy, data-transfer, retention, or third-party processing implications. Because this skill is explicitly designed to send user-provided media and prompts off-host to an external service, missing disclosure increases the risk of users unintentionally transmitting sensitive or regulated content.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The README states that setting `VIDU_DEBUG=1` prints the full API response body to stderr, but it does not warn that responses may contain sensitive metadata, URLs, request context, or other user-associated data that could end up in logs, CI output, or agent transcripts. In an agent-skill setting, stderr is often centrally collected, making accidental data exposure more likely.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The documentation explicitly states that local file paths may be uploaded and that remote URLs are passed through to the service, but it does not clearly warn users that supplying these values can transmit local or third-party content to the Vidu service. In an agent skill context, this can lead to unintended disclosure of sensitive local media, subtitle files, or user-provided URLs if the agent uses the compose command without making the data-transfer behavior explicit.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
The file includes a locale-specific default: `https://service.vidu.cn` for mainland China, with an alternative overseas endpoint only mentioned secondarily. This can be read as imposing a regional default without explicit opt-in or explanation of how users should choose the appropriate locale.

Natural-Language Policy Violations

Low
Confidence
84% confidence
Finding
The reference lists the model mapping as "全能Image 2 (GPT-Image 2)", introducing Chinese-language text into otherwise English documentation without any user opt-in or note that the locale is intentionally vendor-specific. This can conflict with language consistency expectations for skills that should not force a specific language unexpectedly.

Static analysis

No suspicious patterns detected.