Back to skill

Security audit

电商促销海报 | 营销海报 | 大促海报 | 活动图生成 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill has a clear poster-generation purpose, but it tells agents to install and upgrade unpinned tools globally and configure API tokens without clear user-controlled boundaries.

Review before installing. Use this only if you are comfortable with an agent installing or upgrading qhkit from npm, possibly using an npm mirror, uploading referenced product images to the LinkPix/qhkit service, and handling a LinkPix API token. Prefer explicit approval for installs and token setup, and avoid unpinned upgrades in sensitive environments.

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:40
Finding
Automatic Installation and Execution of Unpinned Third-Party Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 40-47 and 67-71; dependency metadata is also declared near line 8 **Vulnerability Type**: Unpinned and automatically executed third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw":{"emoji":"🎉","requires":{"bins":["qhkit"]},"install":[{"kind":"node","package":"@iqinghu/qhkit","bins":["qhkit"]}]}} ``` ```bash npm i -g @iqinghu/qhkit ``` The documented fallback executes the package through `npx` without a pinned version: ```bash npx @iqinghu/qhkit <command> ... ``` The upgrade instructions explicitly install the latest available package: ```bash npm i -g @iqinghu/qhkit@latest ``` The instructions also permit use of an alternative registry: ```bash npm i -g @iqinghu/qhkit --registry=https://registry.npmmirror.com ``` ### Technical Analysis The Skill automatically installs and executes `@iqinghu/qhkit` without pinning it to a reviewed, immutable version or validating package integrity against a trusted hash. The `@latest` upgrade command deliberately resolves to mutable remote content, while the `npx` fallback may download and execute a currently published package on demand. npm packages can execute JavaScript and package lifecycle scripts with the permissions of the invoking user. Therefore, the effective executable behavior can change after the Skill itself has been reviewed. A compromised package release, maintainer account, registry response, or configured mirror could introduce arbitrary code without requiring any modification to `SKILL.md`. Using a global installation increases exposure by making the tool available beyond the immediate task and potentially replacing an existing command on the user's executable search path. The alternative npm mirror introduces an additional supply-chain trust boundary. No evidence shows that the named package or mirror is currently malicious; the vulnerability is the absence of version and integrity co ...[truncated 2142 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to an exact reviewed version rather than using an implicit current version or `@latest`: ```bash npm install --global @iqinghu/qhkit@<reviewed-version> ``` 2. Record and verify the package integrity value obtained from a trusted source. Prefer a lockfile using npm's integrity metadata where the deployment model permits it. 3. Remove automatic upgrades to `@latest`. Require a separate review and explicit user approval before changing the installed version. 4. Avoid `npx` for unpinned on-demand execution. If it must be supported, specify the exact reviewed package version and disable unnecessary installation behavior. 5. Prefer a project-local, isolated dependency installation over a global installation. Execute the reviewed local binary directly so it cannot unexpectedly replace or shadow unrelated system tools. 6. Require explicit user confirmation before installing any package or changing the environment. 7. Use the official npm registry by default. If a mirror is necessary, document its trust implications and retain integrity verification anchored to information obtained independently of that mirror. 8. Run the CLI in a restricted environment with only the files, network destinations, and environment variables required for image generation. Provide the API token only to the specific process that needs it. 9. Document the precise data transmitted by the CLI, including prompts, local product images, authentication tokens, and resulting service metadata, so users can make an informed decision before execution. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (2)

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The skill includes extensive environment bootstrapping, package installation, Node runtime setup, and API token configuration steps that go beyond a simple poster-generation workflow. In an agent setting, this expands the skill's operational scope into software installation and credential handling, increasing the risk of unintended system modification, secret exposure, and supply-chain dependence if the agent follows the instructions automatically.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The metadata says the skill 'must trigger' for a very broad set of common promotional-image requests, without meaningful constraints or priority rules. In an agent router, this can cause over-invocation of an external-tool skill, increasing the chance that unrelated requests are routed into package-installing, networked, token-dependent behavior.

Static analysis

No suspicious patterns detected.