Back to skill

Security audit

电商详情页复刻 | 详情页模仿 | 高转化设计 | 竞品详情 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its stated image-generation purpose, but it asks agents to install and update a global third-party CLI and to follow upgrade commands from tool output, which needs review before use.

Install only if you trust the qhkit package and service. Prefer an isolated environment, avoid global or privileged installs when possible, do not paste API tokens into chat, use a dedicated token with limited exposure, and do not run upgrade commands copied from tool output unless you independently verify they are the expected npm command.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:39
Finding
Unpinned Third-Party CLI Installation and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 4, 39, and 69 **Vulnerability Type**: Supply-chain exposure through mutable npm dependencies **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 ``` ```bash npm i -g @iqinghu/qhkit@latest ``` ### Technical Analysis The Skill directs the Agent to install and execute `@iqinghu/qhkit` without pinning an exact version or cryptographic package integrity value. The explicit use of `@latest` also permits the installed implementation to change after the Skill has been reviewed. npm installations may execute package lifecycle scripts. The installed CLI subsequently receives an API token and processes local image paths, giving it access to data available to the invoking user. Global installation unnecessarily increases the persistence and scope of the dependency compared with an isolated, task-specific installation. The instructions also permit using `registry.npmmirror.com` as an alternative registry. Although described as a network fallback, this introduces another supply-chain trust path without requiring independent package-integrity verification. ### Attack Path 1. An attacker compromises the npm package publisher account, a transitive dependency, a registry endpoint, or the alternative mirror. 2. The attacker publishes or serves a malicious release under the expected package name. 3. The Agent runs the unpinned global installation command or installs `@latest`. 4. Malicious lifecycle scripts execute during installation, or malicious code executes when `qhkit` is invoked. 5. The malicious package accesses files, environment variables, API tokens, or network resources available to the invoking account. ### Impact Assessment Successful exploitation permits code execution with ...[truncated 541 chars]
Remediation
## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to a reviewed exact version rather than using an implicit current version or `@latest`. 2. Maintain a lockfile containing package-integrity hashes and install through a reproducible process such as `npm ci`. 3. Prefer a project-local, temporary installation over global installation. 4. Run the CLI in a sandbox or container with access restricted to the required input images and output directory. 5. Disable npm lifecycle scripts with `--ignore-scripts` if the package can operate without them. Otherwise, review all required lifecycle scripts before installation. 6. Use one explicitly trusted registry and verify package integrity independently when falling back to a mirror. 7. Limit the process environment so the CLI receives only the required API token and cannot read unrelated credentials. 8. Require explicit user approval before installing or upgrading executable third-party dependencies.

T07 · Tool Hijacking and Spoofing

Warning
Location
SKILL.md:61
Finding
Execution of Upgrade Commands Supplied Through Tool Output## Vulnerability Details **File Location**: `SKILL.md`, line 61 **Vulnerability Type**: Unvalidated command execution from a remotely influenced tool response **Risk Level**: Medium ### Vulnerable Instruction ```text **升级**:出现以下任一信号,先升级再重试原命令——命令返回 `{"ok":false,"stage":"version",...}`(版本门禁,message 里就是升级命令,照做即可);stderr 提示有新版本;`options` 返回 `catalogNotice` 且用户恰好要用那个新模型;报「模式在线上已下架或配置变更,请升级 qhkit」。 ``` The relevant instruction tells the Agent that the response `message` contains the upgrade command and that it should execute that command as provided. ### Technical Analysis The instruction treats a CLI response field as trusted executable guidance without defining an allowlist, parser, or validation step. Since CLI responses may depend on data returned by the associated online service, this creates an indirect command-execution channel controlled by the CLI or backend. A normal error or version response should be treated strictly as data. Allowing it to determine a shell command crosses the tool trust boundary and allows compromised tool output to redirect execution away from the documented npm upgrade operation. ### Attack Path 1. An attacker compromises the installed `qhkit` package, its update service, or the backend response used to construct the version-gate message. 2. The attacker returns a `stage:"version"` response whose `message` contains a malicious shell command instead of a legitimate upgrade command. 3. The Agent follows the Skill instruction to execute the command from the message. 4. The command runs under the Agent's operating-system account. 5. The attacker can then read or alter accessible files, retrieve credentials, launch additional programs, or establish network connections within that account's permissions. ### Impact Assessment Exploitation can provide arbitrary command execution with the privileges of the Agent process. Exposed assets may include the API token, environment variables, local image ...[truncated 350 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction to execute commands found in the response `message`. 2. Treat `message` exclusively as untrusted display text. 3. Map recognized version-status values to a hard-coded, reviewed upgrade procedure. 4. Permit only an exact, pinned package installation command rather than arbitrary shell syntax. 5. Reject output containing shell metacharacters, redirections, pipelines, command substitutions, URLs, or unexpected arguments. 6. Require explicit user confirmation before any dependency upgrade. 7. Perform upgrades in an isolated environment with restricted filesystem, environment-variable, and network access. 8. Verify the installed version and package integrity after upgrading and before supplying the API token or user images.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The skill metadata says it 'must trigger' for broad, common requests like copying or benchmarking a product detail page, but it does not define clear exclusions or gating. Over-broad mandatory activation can cause the agent to invoke this skill in ambiguous contexts, increasing the chance of unintended execution, unnecessary package installation, and generation of imitation content when a user did not explicitly consent to that workflow.

Vague Triggers

Low
Confidence
89% confidence
Finding
The example trigger section gives only positive examples and no scope limits, so nearby paraphrases may be treated as matches even when the user only wants general design help. In an agent setting, this ambiguity can lead to misrouting, overuse of the skill, and accidental execution of installation or credential-setup flows tied to the skill.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill includes a token setup flow that instructs users to obtain and set an API token, but it does not explicitly warn against pasting secrets into shared chats, logs, or prompts. In an agent environment, missing secret-handling guidance raises the risk of credential exposure through conversation history, terminal logs, shell history, or accidental echoing during troubleshooting.

Static analysis

No suspicious patterns detected.