Back to skill

Security audit

SearchOnlineAssets

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed online asset search integration, but users should understand that it installs or runs an external dLazy npm CLI and sends search queries to third-party services.

Install only if you are comfortable running @dlazy/cli@1.0.9 and sending asset search terms to dLazy/Pixabay. Prefer the documented npx path or per-invocation DLAZY_API_KEY if you want less persistence, and verify the dLazy CLI source/package before using it in sensitive workspaces.

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:10
Finding

Unaudited Third-Party npm Package Is Installed and Executed

Content
View full analysis

Vulnerability Details

File Locations: SKILL.md:10-11, 62-68; SKILL-cn.md:10-11, 62-68
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Medium

Vulnerable Code

SKILL.md:10-11 and SKILL-cn.md:10-11:

yaml
'install': 'npm install -g @dlazy/cli@1.0.9',
'installAlternative': 'npx @dlazy/cli@1.0.9',

SKILL.md:62-68:

markdown
- **npm package**: `@dlazy/cli` (pinned to `1.0.8` in this skill's install spec)

You can install on demand without persisting a global binary by running:

```bash
npx @dlazy/cli@1.0.9 <command>
text

The equivalent installation and execution instructions appear in `SKILL-cn.md:62-68`.

### Technical Analysis

The Skill directs the host to retrieve and execute `@dlazy/cli@1.0.9` from the npm registry. The package implementation, integrity metadata, dependency lockfile, and transitive dependency tree are not included in the audited project, which contains only the two Skill documentation files. Consequently, the behavior of the executable and any npm lifecycle scripts cannot be verified from this artifact.

Pinning the package to version `1.0.9` reduces unintended version drift but does not protect against a compromised publisher account, compromised registry artifact, malicious lifecycle scripts, or vulnerable transitive dependencies. The global installation command additionally writes a persistent executable into the user's npm global installation area.

The provenance text also incorrectly says that the installation specification is pinned to `1.0.8`, while every executable installation command uses `1.0.9`. This inconsistency can cause reviewers to inspect a different release from the one actually executed.

The Skill documentation claims that runtime activity is limited to Pixabay access, but its metadata lists `api.dlazy.com` and `files.dlazy.com`. Because the runtime implementation is external to the audited artifact, its actual network 
...[truncated 1926 chars]
Remediation
View remediation

Remediation Suggestions

  1. Vendor or bundle the required implementation with the Skill so its behavior can be reviewed alongside the Skill definition.
  2. Publish and verify a cryptographic integrity digest for the exact npm artifact before installation or execution.
  3. Include a lockfile and review the complete transitive dependency tree using dependency and malware scanning tools.
  4. Prefer a project-local, sandboxed installation over npm install -g to limit persistence and filesystem exposure.
  5. Disable npm lifecycle scripts where compatible, for example by using --ignore-scripts, and explicitly audit any scripts that are required.
  6. Run the CLI with least privilege in an isolated environment with restricted filesystem and network access.
  7. Expose the API key only for the specific invocation that requires it, and prevent the package from accessing unrelated secrets.
  8. Restrict outbound traffic to documented and necessary endpoints, and reconcile the claimed Pixabay-only behavior with the declared dLazy endpoints.
  9. Correct the provenance documentation so that the reviewed version and executed version consistently identify 1.0.9.
  10. Avoid executing the package automatically during Skill loading; require explicit user approval before downloading or running third-party code.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 27)May include surrounding context.

md
[English](./SKILL.md) · [中文](./SKILL-cn.md)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger phrase '在线素材搜索' is semantically broad and likely to match many normal requests for online assets, even when the user did not intend to invoke this specific tool. Because this skill sends search terms to external services, broad matching raises the chance of unintended data disclosure and unnecessary third-party API usage.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The trigger phrase '在线素材搜索' is semantically broad and likely to match many normal requests for online assets, even when the user did not intend to invoke this specific tool. Because this skill sends search terms to external services, broad matching raises the chance of unintended data disclosure and unnecessary third-party API usage.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The error-handling guidance says a missing key error means the workspace lacks 'Pixabay credentials', but the skill elsewhere documents that authentication is via a dLazy API key. This inconsistency can mislead operators into incorrect remediation, delay incident response, and cause users to disclose or configure the wrong secret, though it does not itself create direct code execution or data exfiltration.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill schema sets lang default to "zh" and the behaviour notes instruct agents to translate Chinese user terms into English for better recall. This creates a language/locale preference that is imposed by the skill rather than explicitly chosen by the user, which matches the policy concern for forced language or locale behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation says the tool requires a dLazy API key configured via the dLazy CLI or environment variable, but the critical instruction tells the agent that a missing-key error means the workspace lacks Pixabay credentials. This actively misstates what credential is actually used and could cause operators or agents to troubleshoot the wrong secret.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The provenance section states the npm package is fixed to version 1.0.8, while the manifest pins installation to 1.0.9. Version mismatches weaken supply-chain transparency and can cause reviewers or automation to validate one artifact while users install another, increasing the chance of unreviewed behavior being trusted.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.