Back to skill

Security audit

图生视频 Vidu Q2

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed wrapper around dLazy’s image-to-video CLI; the main risk is trusting the external npm CLI with your API key and selected media files.

Install only if you are comfortable trusting dLazy’s npm CLI and hosted service with your prompt, API key, and the media files you explicitly pass. Prefer the pinned npx invocation or a normal user-level install, avoid running npm or the CLI with elevated privileges, review the linked source/package provenance if needed, and rotate the dLazy API key if you suspect exposure.

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:51
Finding
Execution of an Externally Retrieved npm Dependency Without Local Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:51-65` **Vulnerability Type**: Third-party dependency and supply-chain exposure **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown - **CLI source code**: [github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) - **Maintainer**: dlazyai - **npm package**: `@dlazy/cli` (pinned to `1.2.3` in this skill's install spec) - **Homepage**: [dlazy.com](https://dlazy.com) You can install on demand without persisting a global binary by running: ```bash npx @dlazy/cli@1.2.3 <command> ``` Or, if you prefer a global install, the skill's `metadata.clawdbot.install` field declares the exact pinned version (`npm install -g @dlazy/cli@1.2.3`). Review the GitHub source before installing. ``` The equivalent installation and execution workflow is also documented in `SKILL-cn.md:51-65`. ### Technical Analysis The Skill directs the Agent to retrieve and execute `@dlazy/cli@1.2.3` from the npm registry using either `npx` or a global npm installation. Although the dependency is pinned to a specific version and a public source repository is identified, the audited project contains only documentation. It does not include the CLI source, a package lockfile, a cryptographic integrity value, a signed provenance record, or a vendored executable that would allow the executed artifact to be verified locally. Execution through `npx` downloads package content at invocation time. A global npm installation similarly permits package installation and any applicable npm lifecycle behavior under the invoking user's privileges. Pinning a version reduces accidental version drift but does not independently establish that the registry artifact is trustworthy or identical to the referenced repository. The external CLI is also expected to handle an API key, read user-selected local media, communicate with `api.dlazy.com` and `files.dlazy.com`, and optionally write generated output. Because its implementation is absent f ...[truncated 2016 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Vendor the exact reviewed CLI implementation in the Skill package or provide a minimal auditable client for the required API operation. 2. Publish and verify cryptographic integrity information for the npm artifact, such as a trusted lockfile integrity value and signed build provenance. 3. Ensure the npm package is reproducibly built from the referenced source revision and document the exact source commit corresponding to version `1.2.3`. 4. Prefer an isolated, least-privilege runtime rather than a global installation. Avoid running npm or the CLI with administrator or root privileges. 5. Disable npm lifecycle scripts where compatible with the package, for example by using an installation policy that ignores scripts after confirming they are unnecessary. 6. Restrict outbound network access to the documented endpoints, `api.dlazy.com` and `files.dlazy.com`, and reject unexpected destinations. 7. Restrict filesystem access to the dLazy configuration file, explicitly selected input files, and the requested output location. 8. Keep API credentials scoped to the minimum required permissions and support prompt revocation and rotation. 9. Verify the installed package artifact before execution and periodically audit the dependency, its transitive dependencies, publisher ownership, and release process. 10. Correctly disclose that execution relies on externally retrieved code and require user confirmation before installing or invoking it for the first time. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Ae1

High
Category
analysis-evasion
Content
[English](./SKILL.md) · [中文](./SKILL-cn.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Vague Triggers

Medium
Confidence
91% confidence
Finding
该技能在“触发关键词”中列出“vidu q2”“图生视频”“图片变视频”,其中后两项是通用任务描述而非狭义命令词,容易与用户普通表达或其他图像/视频技能发生碰撞。文档也未给出排除条件、限定上下文或负面示例来说明何时不应触发该技能。

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
清单与正文多处都说明该技能的目的是把静态图片转换为动态视频,但输出格式示例中的 `outputs[0].type` 却写成 `image`,`mimeType` 也写成 `image/png`。这不是单纯信息缺失,而是文档层面对产物类型的直接矛盾,容易误导调用方按图片而非视频处理结果。

Whitespace Padding

Medium
Category
Prompt Injection
Content
## 错误处理

| Code | 错误类型                         | 示例信息                                                                                                                 |
| ---- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 401  | 未授权 (API Key缺失或无效)       | `ok: false, code: "unauthorized", message: "API key is missing or invalid"`                                                              |
| 501  | 缺少必填参数                     | `error: required option '--prompt <prompt>' not specified`                                                               |
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.

Whitespace Padding

Medium
Category
Prompt Injection
Content
## Error Handling

| Code | Error Type                         | Example Message                                                                                                          |
| ---- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 401  | Unauthorized (No API Key)          | `ok: false, code: "unauthorized", message: "API key is missing or invalid"`                                                              |
| 501  | Missing required parameter         | `error: required option '--prompt <prompt>' not specified`                                                              |
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.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
“您必须明确告知用户”后的固定响应要求以中文写就,且文件内容整体面向中文用户,但未在这些指令处说明应依据用户语言偏好回复。尽管文件顶部提供英文文档链接,当前自然语言指令本身没有明确给予执行时的语言选择或用户 opt-in。

Static analysis

No suspicious patterns detected.