Back to skill

Security audit

图生视频 即梦首帧 Jimeng I2V

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed wrapper for dLazy/Jimeng cloud video generation, with expected use of a third-party CLI, local API-key storage, and upload of user-provided media.

Install this only if you are comfortable running the dLazy npm CLI and sending selected prompts and media files to dLazy's cloud service. Prefer npx or another isolated run method over a global install, pass only the specific media file needed, protect or rotate the API key if concerned, and check dlazy jimeng-i2v-first -h because the docs have flag and output-format inconsistencies.

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:4
Finding
Unverified Third-Party CLI Installation and Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:4, 56-62`; equivalent instructions in `SKILL-cn.md:4, 55-61` **Vulnerability Type**: Third-party supply-chain exposure through npm installation and execution **Risk Level**: Medium ### Vulnerable Code From `SKILL.md:4`: ```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 jimeng-i2v-first -h for help."}} ``` From `SKILL.md:56-62`: ```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. ``` Equivalent code from `SKILL-cn.md:4`: ```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":"当调用此技能时,可以使用 dlazy jimeng-i2v-first -h 查看帮助信息。"}} ``` From `SKILL-cn.md:55-61`: ```markdown 如果你不希望在系统上长期保留一个全局 CLI,可以按需运行: ```bash npx @dlazy/cli@1.2.3 <command> ``` 如选择全局安装,技能的 `metadata.clawdbot.install` 字段已固定到 `npm install -g @dlazy/cli@1.2.3`。安装前建议先到 GitHub 仓库审阅源码。 ``` ### Technical Analysis The project ...[truncated 2422 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Vendor the reviewed CLI implementation with the Skill, or otherwise make the exact executable source available as part of the auditable artifact. 2. Publish cryptographic checksums or signed release attestations for the npm package and verify them before execution. 3. Use npm provenance and signature verification where supported, and document the expected publisher and registry. 4. Pin and audit all transitive dependencies through a lockfile rather than relying only on the top-level package version. 5. Prefer a temporary, isolated installation over a global installation. Execute the CLI in a sandbox or container with only the required files and network destinations available. 6. Disable npm lifecycle scripts during installation where compatible, for example through an installation workflow using `--ignore-scripts`; explicitly run only reviewed setup steps if any are required. 7. Run the CLI as an unprivileged user and avoid installation with administrative or root permissions. 8. Provide only the specific input media required for a generation request, and avoid exposing unrelated directories to the process. 9. Store the API key with restrictive permissions, use a narrowly scoped credential where supported, and rotate it if dependency compromise is suspected. 10. Add automated dependency scanning, release-integrity validation, and periodic review of the referenced package and its dependency tree. ]]>
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 (10)

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
The trigger phrases are broad and likely to overlap with ordinary user requests about video generation, which can cause accidental invocation of this skill. In this skill's context, unintended activation could prompt upload of local media and transmission of prompts/files to external SaaS endpoints, creating privacy and data-handling risk rather than classic code-execution risk.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The manifest and surrounding documentation say this skill generates dynamic videos from a first-frame image, but the example output shows an object with `type: "image"`, `result.png`, and `image/png`. That is an active contradiction about the core artifact the skill produces, not just an omitted detail.

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
文档中的“您必须明确告知用户”及后续固定中文处置说明,对代理输出行为施加了特定语言要求,但未说明需依据用户语言偏好或提供 opt-in。虽然文件顶部有中英文文档链接,但该处操作指令本身未给出语言选择空间。

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrase "image to video" is very broad and could match many ordinary user requests unrelated to this specific Jimeng first-frame skill. The description does not provide negative examples or tighter activation constraints to distinguish when this skill should activate versus other image/video tools.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The manifest and top-level documentation repeatedly state this skill generates dynamic videos from a first-frame image, but the documented output example shows `type: "image"`, a PNG URL, and the command examples use `--image` instead of the documented `--firstFrame` flag. This is not merely incomplete documentation; it actively conflicts with the stated behavior and interface for a video-generation skill.

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
93% confidence
Finding
The help text documents the first-frame input flag as `--firstFrame`, but the usage examples invoke the command with `--image`. This directly conflicts with the declared interface and can mislead users and agents about what the command actually accepts.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
The description forces bilingual output in the manifest text rather than letting the user or invoking environment choose a language. This can violate language/locale policy when a single language should not be imposed without opt-in.

Static analysis

No suspicious patterns detected.