Back to skill

Security audit

音效生成 可灵 Kling SFX

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed wrapper for generating sound effects with dLazy/Kling, with normal cloud-service risks from installing a third-party CLI and uploading chosen prompts or media.

Before installing, confirm you trust dLazy and the @dlazy/cli npm package, prefer per-run npx or a local install over a global install when practical, and only pass media files and prompts you are comfortable uploading to dLazy. Store and rotate the dLazy API key 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:5
Finding
Third-Party CLI Is Retrieved and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:5, 50-56`; duplicated in `SKILL-cn.md:5, 48-54` **Vulnerability Type**: Supply-chain risk from an externally retrieved executable dependency **Risk Level**: Medium ### Vulnerable Code From `SKILL.md:5`: ```json "install":"npm install -g @dlazy/cli@1.2.3", "installAlternative":"npx @dlazy/cli@1.2.3" ``` From `SKILL.md:50-56`: ```bash npx @dlazy/cli@1.2.3 <command> ``` The equivalent installation and invocation instructions appear in `SKILL-cn.md:5, 48-54`. ### Technical Analysis The Skill delegates its operation to the externally distributed `@dlazy/cli` npm package. Although the package version is pinned to `1.2.3`, the project does not include the CLI implementation, a vendored dependency, a package lockfile, a cryptographic checksum, or a signature-verification procedure. Version pinning limits unexpected upgrades but does not independently authenticate the retrieved package contents. Both `npm install -g` and `npx` can retrieve executable package content from the npm distribution channel. Package installation may also execute npm lifecycle scripts unless explicitly disabled. Consequently, the effective code executed by the Skill cannot be verified solely by auditing this project. The global installation option increases exposure by persisting the executable outside the Skill directory and making it available to later sessions. The CLI is also expected to access the user's dLazy API key, selected local media, and remote API endpoints, making compromise of this dependency security-sensitive. No evidence was found that the named package is currently malicious. This finding concerns the absence of dependency integrity controls and the resulting supply-chain attack surface. ### Attack Path 1. An attacker compromises the npm package publisher account, package artifact, registry delivery path, or another relevant distribution component. 2. Malicious content is associated with or served for ...[truncated 1436 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Vendor and audit the required CLI implementation within a controlled repository or package artifact so the executed code is included in the review scope. 2. Publish a cryptographic checksum or signed provenance attestation for the approved package artifact and verify it before execution. 3. Commit a lockfile that records the exact resolved artifact and integrity value where npm-based installation remains necessary. 4. Prefer a local, project-scoped installation over `npm install -g` to prevent the executable from persisting globally. 5. Avoid automatic `npx` downloads in production workflows. Configure npm to use an approved registry and require the package to be present in a verified local cache. 6. Disable npm lifecycle scripts with `--ignore-scripts` if the package can operate without them. If lifecycle scripts are required, audit each script and document the necessity. 7. Run the CLI in a restricted sandbox or container with: - Access only to explicitly selected media files. - No access to unrelated home-directory content. - A narrowly scoped API credential. - Network access limited to documented dLazy endpoints. - No administrative privileges. 8. Protect `~/.dlazy/config.json` with restrictive permissions, rotate exposed credentials, and prefer short-lived or narrowly scoped tokens where supported. 9. Apply the same hardened installation guidance consistently in both `SKILL.md` and `SKILL-cn.md`. ]]>
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
91% confidence
Finding
该文件是 markdown,适用 SQP-1。触发词“生成音效”“视频配音”描述的是常见任务意图而非明确、受限的调用短语,文档也没有给出不应触发的负面示例或更具体的上下文限制,因此可能在普通对话中被过度匹配。

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
该技能的清单与全文说明都明确表示其功能是生成音效,但“输出格式”示例中却将 outputs 项标注为 `type: "image"`,并给出 `result.png` 和 `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
75% confidence
Finding
SQP-3 适用于所有文件类型。文档包含“CRITICAL INSTRUCTION FOR AGENT”并整体以中文规定执行方式,但未说明应根据用户语言偏好切换或提供语言选项;这可能构成未经用户选择即默认特定语言/locale 的策略问题。

Intent-Code Divergence

Low
Confidence
97% confidence
Finding
The manifest and surrounding documentation describe this skill as generating scene sound effects, but the sample JSON output declares an output object with `type: "image"`, a `.png` URL, and `mimeType: "image/png"`. This is an active documentation contradiction rather than a mere omission, because it tells integrators to expect image output from an audio-generation skill.

Static analysis

No suspicious patterns detected.