Back to skill

Security audit

视频生成 Veo 3.1

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed video-generation skill that uses a pinned third-party dLazy npm CLI, stores a dLazy API key locally, and uploads user-supplied media to dLazy endpoints for generation.

Install only if you trust dLazy and the @dlazy/cli npm package. Prefer npx or a reviewed/sandboxed install, use a revocable dLazy API key, and only pass media files you intend to upload to dLazy. Be aware that the trigger wording is broad and the sample --image flag may not match the documented CLI options.

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 (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:49
Finding
Execution of an Unverified Third-Party npm CLI Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 49-55; dependency installation is also declared in line 4 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```markdown 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 corresponding metadata declaration is: ```yaml metadata: {"clawdbot":{"emoji":"🤖","requires":{"bins":["npm","npx"]},"install":"npm install -g @dlazy/cli@1.2.3","installAlternative":"npx @dlazy/cli@1.2.3","homepage":"https://github.com/dlazy-ai/cli","source":"https://github.com/dlazy-ai/cli","author":"dlazyai","license":"see-repo","npm":"https://www.npmjs.com/package/@dlazy/cli","configLocation":"~/.dlazy/config.json","apiEndpoints":["api.dlazy.com","files.dlazy.com"]},"openclaw":{"systemPrompt":"When invoking this skill, use dlazy veo-3.1 -h for help."}} ``` ### Technical Analysis The Skill instructs the agent to install or execute `@dlazy/cli@1.2.3` directly from the npm registry. Pinning the version limits unintended version drift, but the project does not include the CLI source, a package-lock entry, a cryptographic integrity digest, or another mechanism that independently verifies the package contents. Both `npx` execution and global npm installation can execute package runtime code. Depending on npm configuration and package contents, installation lifecycle scripts may also execute. The external dependency subsequently receives the dLazy API credential, network access, and access to local media files explicitly supplied by the user. Consequently, compromise of the npm publisher, registry artifact, or package release could turn the documented workflow into arbit ...[truncated 1592 chars]
Remediation
## Remediation Suggestions 1. Publish and verify a cryptographic integrity digest for the exact npm artifact, and enforce that digest through a lockfile or controlled installation mechanism. 2. Vendor the reviewed CLI implementation into a trusted distribution channel or provide reproducible-build instructions that allow the npm artifact to be compared with the public source. 3. Use a committed lockfile and trusted internal registry or package proxy with artifact immutability and malware scanning. 4. Disable npm lifecycle scripts where operationally possible, for example by using an installation policy equivalent to `--ignore-scripts`, after confirming that the package does not legitimately require them. 5. Run the CLI in a sandbox or container with access limited to the specific input and output files required for generation. 6. Restrict outbound network access to the documented service endpoints and prevent access to unrelated hosts. 7. Use a narrowly scoped, revocable API key and avoid exposing unrelated environment variables or credentials to the CLI process. 8. Independently review the source and published artifact before approving upgrades, even when versions remain explicitly pinned.

T08 · Insecure Dependencies

Warning
Location
SKILL-cn.md:47
Finding
Execution of an Unverified Third-Party npm CLI Dependency in the Chinese Skill Definition## Vulnerability Details **File Location**: `SKILL-cn.md`, lines 47-53; dependency installation is also declared in line 4 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippet**: ```markdown If you do not want to retain a global CLI on the system, the documented command is: ```bash npx @dlazy/cli@1.2.3 <command> ``` The alternative global installation declared by the Skill is `npm install -g @dlazy/cli@1.2.3`. ``` The original dependency declaration is: ```yaml metadata: {"clawdbot":{"emoji":"🤖","requires":{"bins":["npm","npx"]},"install":"npm install -g @dlazy/cli@1.2.3","installAlternative":"npx @dlazy/cli@1.2.3","homepage":"https://github.com/dlazy-ai/cli","source":"https://github.com/dlazy-ai/cli","author":"dlazyai","license":"see-repo","npm":"https://www.npmjs.com/package/@dlazy/cli","configLocation":"~/.dlazy/config.json","apiEndpoints":["api.dlazy.com","files.dlazy.com"]},"openclaw":{"systemPrompt":"When this Skill is invoked, the agent may use dlazy veo-3.1 -h to view help."}} ``` ### Technical Analysis This localized Skill definition duplicates the instruction to install or execute `@dlazy/cli@1.2.3` from npm. Although the dependency is version-pinned, no integrity checksum, vendored implementation, lockfile, or independent artifact verification is included in the audited project. Executing the dependency gives third-party package code the privileges of the invoking user. The package is also expected to process API credentials, communicate with hosted endpoints, and read user-selected media files. A supply-chain compromise could therefore abuse capabilities that are legitimate for the intended video-generation workflow. No malicious implementation was present in the audited project, which contains only the two Markdown Skill definitions. This finding concerns the dependency trust and verification model. ### Attack Path 1. An attacker compromises t ...[truncated 1045 chars]
Remediation
## Remediation Suggestions 1. Apply the same dependency-verification controls to every localized Skill definition. 2. Pin and enforce the npm artifact's cryptographic integrity rather than relying only on its version number. 3. Include a reviewed lockfile or distribute the CLI through an immutable, controlled package repository. 4. Establish reproducible builds and verify that the published npm artifact corresponds to the reviewed source repository. 5. Disable unnecessary lifecycle scripts and execute the CLI in a restricted environment. 6. Limit filesystem access to explicitly approved input and output paths. 7. Restrict network access to the required dLazy API and media endpoints. 8. Use scoped, revocable API credentials and rotate them immediately if dependency compromise is suspected.
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 (7)

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
94% confidence
Finding
该技能将“生成视频”“文生视频、图生视频”等通用表述列为触发关键词,但没有限定必须在特定产品、命令空间或上下文中触发。这些词语在普通创作或编辑场景中也很常见,容易与非该技能意图的用户请求重叠。

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.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
文档中的“您必须明确告知用户”指令以中文固定了代理的响应语言,但这些要求未说明应依据用户当前语言偏好或显式选择进行调整。虽然文件提供了英文链接版本,但当前内容中的行为指令本身没有给出语言可选或按用户语言回应的说明。

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger keywords include very broad phrases such as 'generate video' and 'text to video, image to video', which can cause this skill to activate for many generic user requests unrelated to this specific provider or model. In an agent ecosystem, overbroad routing increases the chance that users are steered into installing or invoking an external CLI and sending prompts or local files to a third-party service without sufficiently explicit intent.

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.

Intent-Code Divergence

Low
Confidence
95% confidence
Finding
L127-L130 的示例命令使用了 `--image` 参数,但前面的正式帮助说明 L83-L96 只定义了 `--firstFrame`、`--lastFrame`、`--images` 和 `--video`,并不存在通用 `--image` 选项。这属于文档对实际命令行为的直接误导,可能导致调用方错误理解技能接口。

Static analysis

No suspicious patterns detected.