Back to skill

Security audit

女装开门换装 | 变装视频 | 换装仿拍 | 穿搭创作 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill’s video-generation purpose is coherent, but it asks the agent to install mutable third-party tooling and handle an API token before uploading user media.

Install only if you are comfortable letting the agent install and run the qhkit npm CLI, configure a Qinghu API token, and upload your model, clothing, and audio files to Qinghu/LinkPix. Prefer a pinned/local CLI install and a narrowly scoped token, and review credit estimates before allowing generation.

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:80
Finding
Unpinned Third-Party CLI Installation and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 7 and 80–86; upgrade instruction at lines 111–115 **Vulnerability Type**: Insecure third-party dependency installation **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 also invokes the unpinned package through `npx`: ```bash npx @iqinghu/qhkit <command> ... ``` The upgrade instructions explicitly install the mutable latest release: ```bash npm i -g @iqinghu/qhkit@latest ``` ### Technical Analysis The Skill instructs the Agent to install and execute the third-party npm package `@iqinghu/qhkit` without pinning it to a reviewed version or verifying package integrity. The `@latest` upgrade instruction is explicitly mutable, while the unversioned `npm` and `npx` forms ordinarily resolve according to current registry metadata. npm installation may execute package lifecycle scripts, and subsequent workflow commands execute package runtime code with the privileges of the invoking user. A global installation also changes the user's environment beyond the immediate project. The documented fallback registry introduces an additional dependency-distribution path, although the audit found no evidence that the named mirror is itself malicious. The CLI is necessary for the Skill's declared video-generation workflow. However, installing an unpinned release globally or executing it dynamically through `npx` exceeds the safest minimum necessary. A locally installed, version-pinned, integrity-verified dependency would reduce exposure. This finding does not establish that the current package is malicious. It identifies a supply-chain weakness that would allow the effective executable code to change afte ...[truncated 1618 chars]
Remediation
## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to a specifically reviewed version in both metadata and command examples: ```bash npm install --save-exact @iqinghu/qhkit@&lt;reviewed-version&gt; ``` 2. Record and verify the package's expected registry integrity value or cryptographic digest before executing it. 3. Remove automatic `@latest` upgrades. Require explicit user approval and security review before changing the installed version. 4. Prefer a project-local installation over a global installation, and invoke the pinned local binary. This limits changes to the user's broader command environment. 5. Avoid an unpinned `npx` fallback. If `npx` is required, specify the exact reviewed version and prevent implicit replacement by a newer release. 6. Where package compatibility permits, install with lifecycle scripts disabled: ```bash npm install --ignore-scripts --save-exact @iqinghu/qhkit@&lt;reviewed-version&gt; ``` If lifecycle scripts are required, review them and document why they are necessary. 7. Use the official npm registry by default. If a mirror must be used, treat it as a separate trust boundary and verify that the retrieved package has the same expected integrity value. 8. Run the CLI in a restricted environment with access only to required media files, network destinations, and the minimum necessary token. 9. Keep tokens out of command history and process arguments where possible. Prefer a narrowly scoped environment variable or protected configuration file with restrictive permissions.
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 (4)

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The skill instructs the agent to install and upgrade software, including Node.js and the qhkit CLI, by running shell commands and modifying PATH. That expands the skill from simple media-generation orchestration into environment bootstrapping and package execution, increasing supply-chain and arbitrary-command risk if the package, mirror, or install path is compromised.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The skill directs the agent to collect and persist API credentials via command-line configuration or environment variables. This is dangerous because it encourages handling long-lived secrets inside an automation flow for a media task, creating opportunities for credential capture, unintended persistence, reuse across contexts, or leakage through logs and shell history.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The manifest description says the skill must trigger for broad clothing/video-related requests, making invocation effectively mandatory for a wide class of ordinary prompts. Overbroad activation can cause the agent to route users into external tooling unexpectedly, increasing the chance of unnecessary credential prompts, package installation, or third-party data transfer.

Vague Triggers

Medium
Confidence
81% confidence
Finding
The 'when to trigger' section uses loose natural-language examples without clear boundaries, which can lead to accidental invocation on adjacent fashion-video requests. In this skill, that matters because invocation is not harmless: it may push the agent toward external CLI usage, account configuration, and media upload to a third-party service.

Static analysis

No suspicious patterns detected.