Back to skill

Security audit

图片生成 Image Generate

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate dLazy image-generation skill, but installing it means trusting an external npm CLI and sending prompts or selected media to dLazy.

Install only if you are comfortable trusting the dLazy npm CLI and sending prompts plus any selected media files to dLazy's hosted service. Prefer npx or another non-global install when possible, use a revocable API key, avoid passing sensitive local files, and rotate the key if the CLI or workstation is later suspected to be compromised.

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
Execution of an Unverified Third-Party npm Package<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:5, 65-71`; mirrored configuration in `SKILL-cn.md:5, 65-71` **Vulnerability Type**: Third-party dependency and supply-chain exposure **Risk Level**: Medium ### Vulnerable Code Snippet From `SKILL.md:5`: ```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 called, use dlazy <subcommand>."}} ``` From `SKILL.md:65-71`: ```bash npx @dlazy/cli@1.2.3 <command> ``` ```bash npm install -g @dlazy/cli@1.2.3 ``` The equivalent package installation and invocation instructions also appear in `SKILL-cn.md:5, 65-71`. ### Technical Analysis The Skill delegates its entire runtime behavior to the external npm package `@dlazy/cli@1.2.3`. Although an exact package version is specified, the audited project does not contain the package source, a package lockfile, a verified cryptographic digest, a signed provenance record, or a vendored and reviewed executable artifact. Version pinning limits accidental version drift, but it does not independently verify that the artifact downloaded from the registry is trustworthy. If the npm package, its transitive dependencies, its maintainer account, or the distribution channel is compromised, installation or `npx` execution may run attacker-controlled JavaScript. npm lifecycle hooks may also execute during package installation. The global installation form increases exposure by persistently placing the package in the user's global npm environment. The `npx` alternative avoids a permanent global binary but still retrieves and executes external package ...[truncated 1902 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Vendor the exact CLI source or distributable artifact into a controlled build process and audit it together with the Skill. 2. Verify downloaded packages using cryptographic integrity values, trusted signatures, and npm provenance attestations where available. 3. Maintain and review a lockfile covering the complete transitive dependency graph. 4. Generate a software bill of materials and continuously scan direct and transitive dependencies for known vulnerabilities and unexpected ownership changes. 5. Prefer an isolated, non-global installation over `npm install -g` to reduce persistence and prevent modification of the user's global tool environment. 6. Disable npm lifecycle scripts when they are not required, for example through an appropriately tested `--ignore-scripts` installation policy. 7. Execute the CLI in a sandbox or container with: - Access only to explicitly selected input files. - A read-only filesystem wherever possible. - No access to unrelated home-directory content. - Network access restricted to documented and verified endpoints. - No administrative or root privileges. 8. Store the API key in an operating-system credential manager rather than a regular configuration file where supported. 9. Use a narrowly scoped, revocable API key and rotate it after suspected package or workstation compromise. 10. Review the referenced upstream source and ensure that the reviewed commit corresponds cryptographically to the distributed npm artifact. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

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
95% confidence
Finding
The trigger keywords are broad everyday terms such as '生成图片', '画图', and '文生图', which can overlap with normal conversation and cause unintended activation of the skill. In this skill, accidental invocation is more consequential because it can lead to execution of external CLI commands, network calls to third-party APIs, local credential use, and possible billing-impacting image generation requests.

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
87% confidence
Finding
该文件整体以中文为主,并在 L010 仅以链接形式指向英文版本,但当前技能文件本身没有说明应根据用户语言偏好选择输出语言,也没有要求先征求用户语言偏好。对于组织语言/区域政策而言,这可能构成默认强制特定语言的风险。

Static analysis

No suspicious patterns detected.