Back to skill

Security audit

文生图 Seedream 4.5

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed third-party image-generation integration that sends prompts and selected media to dLazy, with no evidence of hidden or destructive behavior in the inspected artifacts.

Before installing, be comfortable with using dLazy as the image-generation provider: prompts and selected local media can be uploaded to dLazy, generated assets are hosted by dLazy, and an API key may be stored locally. Prefer npx or a sandboxed environment if you do not want a persistent global CLI, and avoid passing sensitive images or unrelated secrets to the tool.

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:67
Finding
Third-Party npm Package Executed Without Artifact Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:6`, `SKILL.md:67-73`; mirrored in `SKILL-cn.md:6`, `SKILL-cn.md:66-72` **Vulnerability Type**: Third-party supply-chain dependency executed without local auditability or cryptographic integrity verification **Risk Level**: Medium ### Vulnerable Code ```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 seedream-4.5 -h for help."}} ``` ```bash npx @dlazy/cli@1.2.3 <command> ``` ```text npm install -g @dlazy/cli@1.2.3 ``` ### Technical Analysis The Skill instructs the environment to retrieve and execute `@dlazy/cli@1.2.3` directly from the npm package registry. Pinning the package version limits unintended version drift, but it does not cryptographically establish that the downloaded package is the artifact that was reviewed or expected. The external package is not included in the audited project, so its executable code and npm lifecycle scripts cannot be evaluated from this artifact. The referenced GitHub repository also does not, by itself, prove that the source repository and the published npm archive are identical. Both supported installation mechanisms create supply-chain exposure: - `npx` downloads and executes the npm-hosted package on demand. - `npm install -g` may run package lifecycle scripts and persist a globally available executable. - Neither instruction specifies a trusted package digest, signature, lockfile integrity value, or independent artifact verification process. No evidence in the reviewed files proves that the named package is cur ...[truncated 1634 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Verify the package artifact before execution** - Publish and document a trusted SHA-256 or stronger digest for the exact npm archive. - Download the package without executing it, verify the digest, and only then install or invoke it. - Prefer signed provenance, such as npm provenance attestations backed by a trusted build workflow. 2. **Make builds reproducible and auditable** - Link the exact source commit corresponding to version `1.2.3`. - Publish build instructions and attest that the npm artifact was generated from that commit. - Independently compare the contents of the published npm archive with the expected build output. 3. **Reduce installation-time execution** - Avoid global installation unless it is strictly required. - Where compatible, download with lifecycle scripts disabled using `npm install --ignore-scripts`. - Audit any required lifecycle scripts before allowing them to run. 4. **Constrain execution** - Run the CLI as a non-privileged user in a sandbox or container. - Restrict filesystem access to only the explicitly selected input and output paths. - Restrict outbound network access to the documented endpoints when operationally feasible. - Do not expose unrelated secrets or sensitive environment variables to the CLI process. 5. **Control transitive dependencies** - Maintain and review a lockfile containing integrity values. - Continuously scan direct and transitive dependencies for compromise and known vulnerabilities. - Revoke affected API keys and replace the package immediately if package integrity cannot be established. ]]>
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 (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
95% confidence
Finding
The trigger keywords are broad generic phrases such as '生成图片' and '文生图、图生图', which can cause the skill to activate in contexts broader than the specific dLazy Seedream tool. Over-broad invocation increases the chance an agent routes user requests into a third-party CLI that uploads prompts and local file paths to remote services, creating avoidable privacy and execution risk.

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
88% confidence
Finding
The natural-language instructions direct the agent to communicate specific error guidance using Chinese-language wording like “您必须明确告知用户…”, but the file does not offer an explicit user opt-in or language choice. This can violate language/locale policy when interacting with users who did not request Chinese responses.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger keyword 'generate image' is extremely broad and can match many ordinary user requests unrelated to this specific third-party skill. That increases the chance of unintended skill activation, causing prompts or local file references to be routed to an external SaaS CLI/API without sufficiently explicit user 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.

Vague Triggers

Low
Confidence
88% confidence
Finding
The trigger description 'text to image, image to image' is ambiguous and describes common task categories rather than a distinct invocation condition. In this skill's context, ambiguous activation is risky because using the skill may send user prompts and local media to remote endpoints, so accidental invocation can expose data or incur charges.

Static analysis

No suspicious patterns detected.