Back to skill

Security audit

视频仿制 Video Replicate

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed dLazy video-replication wrapper, but installing it means trusting an external npm CLI and uploading selected media to dLazy.

Before installing, treat @dlazy/cli as third-party code: review the linked source/package, prefer npx or an isolated environment over a privileged global install, use a revocable dLazy API key, avoid uploading sensitive videos unless you trust the service, and choose --save paths carefully.

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
Unaudited External npm Package Is Installed and Executed## Vulnerability Details **File Location**: `SKILL.md:4,47-53`; equivalent instructions appear in `SKILL-cn.md:4,47-53` **Vulnerability Type**: Third-party dependency and software supply-chain risk **Risk Level**: Medium ### Vulnerable Code `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 video-replicate -h for help."}} ``` `SKILL.md:47-53`: ```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 Chinese documentation contains the same executable dependency declarations at `SKILL-cn.md:4,47-53`. ### Technical Analysis The project contains documentation only and delegates all operational behavior to the externally distributed npm package `@dlazy/cli@1.2.3`. Both supported installation methods retrieve and execute an artifact from the npm registry: - `npm install -g @dlazy/cli@1.2.3` - `npx @dlazy/cli@1.2.3` Pinning the version reduces exposure to unexpected future package updates, but the project does not include the package source, a lockfile with a registry integrity digest, a signed artifact, or other evidence allowing the downloaded package to be matched conclusively to the linked GitHub repository. The audited files therefore do not permit verification of npm lifecycle s ...[truncated 1945 chars]
Remediation
## Remediation Suggestions 1. Bundle the reviewed CLI source or a reproducible, independently verifiable artifact with the Skill so its effective implementation can be audited. 2. Record and validate the npm artifact's exact integrity digest rather than relying only on a semantic version. 3. Publish provenance attestations and signatures, and verify them before installation or execution. 4. Use a lockfile or equivalent manifest that pins the complete transitive dependency graph and includes integrity values. 5. Disable npm lifecycle scripts where compatible, such as with `--ignore-scripts`, or document and audit every required lifecycle script. 6. Execute the CLI in a sandbox with access restricted to explicitly selected media files, a dedicated output directory, and only the required API domains. 7. Use a dedicated, least-privileged service credential that can be rotated or revoked, rather than exposing unrelated user credentials to the process. 8. Avoid privileged or administrator-level global installation. Prefer an isolated execution environment with a dedicated package cache and operating-system account. 9. Add automated dependency and provenance checks to release workflows and periodically compare the npm package contents against the referenced source repository.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (8)

Ae1

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

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
The manifest description says the tool extracts first frame and audio and returns a bundle of first frame + audio + video. However, the documented output schema later shows only one output object of type image, which does not match the claimed multi-asset result. This creates a user-facing mismatch about what the skill actually produces.

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
The instructions in this section explicitly require the agent to告知用户 using Chinese phrasing, but do not provide any opt-in or alternative language behavior. This creates a language/locale policy concern because the skill constrains user-facing communication to a specific language without documenting a justified locale limitation.

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
81% confidence
Finding
Line L013 describes the skill as '视频拆分工具' (video splitting tool), while the manifest name, title, and surrounding documentation describe video replication/clone behavior. This is not just incomplete wording; it names a different intent than the rest of the file.

Missing User Warnings

Low
Confidence
84% confidence
Finding
This markdown file documents a file-writing capability via `--save <path>` but does not include a user-facing warning about local filesystem modification or overwrite implications. For markdown files, safety-relevant behaviors that affect user data or system state should be disclosed clearly.

Intent-Code Divergence

Low
Confidence
97% confidence
Finding
The options list for `dlazy video-replicate` documents `--videos` as the primary input and does not list any `--prompt` option, yet the example invocation uses `--prompt 'prompt content'`. This is an active documentation contradiction about how the tool is invoked, not merely an omission.

Static analysis

No suspicious patterns detected.