Back to skill

Security audit

电商印花贴合 | 智能贴合 | 服装印花合成 | 商品效果图 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill’s mockup-generation purpose is coherent, but it tells agents to install and upgrade mutable npm tooling and possibly Node automatically, which creates review-worthy supply-chain and local-environment risk.

Review before installing. Use this skill only if you are comfortable installing and running the qhkit npm CLI and uploading selected images to the provider. Prefer a pinned reviewed qhkit version, avoid @latest and unversioned npx, run it in a restricted workspace with only the images needed for the mockup, and use a revocable token with limited exposure.

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:43
Finding
Execution of Unpinned Third-Party npm Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 43–46; related upgrade instruction at line 66 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npm i -g @iqinghu/qhkit ``` The related upgrade instruction explicitly installs the mutable latest release: ```bash npm i -g @iqinghu/qhkit@latest ``` The document also recommends executing the package through `npx` as a fallback: ```bash npx @iqinghu/qhkit <command> ... ``` ### Technical Analysis The Skill depends on the executable npm package `@iqinghu/qhkit`, but the installation instructions do not pin it to a reviewed version or verify the package artifact against a trusted integrity value. The `@latest` upgrade instruction is explicitly mutable, while an unversioned `npx` invocation can download and execute whichever release the registry currently resolves. The package implementation is not included in the audited project, which contains only `SKILL.md`. Consequently, this audit cannot verify the dependency's lifecycle scripts, command implementation, credential handling, file-upload behavior, or network destinations. npm packages may run installation lifecycle hooks and subsequently execute arbitrary JavaScript when their command-line binaries are invoked. If the publisher account, package, npm registry path, or configured mirror is compromised, the downloaded implementation could change after this Skill has been reviewed. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, registry delivery path, or fallback mirror. 2. The attacker publishes a malicious release under `@iqinghu/qhkit` or causes the mutable package reference to resolve to malicious content. 3. A user or agent follows the Skill instructions and runs the unpinned global installation, the `@latest` upgrade, or the unversioned `npx` command. 4. npm downloads the changed package and may execute its lifecycle scripts during ...[truncated 1068 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to an exact version that has been reviewed instead of using an unversioned package or `@latest`. 2. Record and verify the expected package integrity hash or distribute a reviewed lockfile and package artifact. 3. Remove automatic upgrade instructions. Require each new release to undergo review before updating the pinned version. 4. Avoid unversioned `npx` execution. If `npx` remains necessary, specify the exact reviewed version and prevent automatic substitution with a newer release. 5. Use a trusted registry explicitly and document that registry overrides must not redirect scoped packages to untrusted sources. 6. Consider installing with lifecycle scripts disabled where compatible, then invoke only the reviewed binary: ```bash npm install --ignore-scripts --global @iqinghu/qhkit@<reviewed-exact-version> ``` 7. Run the CLI in a restricted environment with access only to the required image files and token. Do not expose unrelated home-directory files, SSH credentials, or broad environment variables. 8. Store the API token with restrictive filesystem permissions and support narrowly scoped, revocable credentials. 9. Publish the dependency source or include a reviewable implementation in the project so its upload destinations, token handling, and command execution can be audited. 10. Continue checksum verification for the Node archive. The flagged checksum pipeline retrieves a manifest and passes it to `sha256sum -c`; it does not pipe remote content into a shell and is not itself a confirmed remote-script execution vulnerability. ]]>
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
92% confidence
Finding
The skill embeds broad environment-bootstrapping steps—installing Node, globally installing/upgrading npm packages, modifying PATH, and suggesting alternative registries—which exceed the minimum needed to describe mockup generation behavior. This increases the agent's authority from using an existing tool to altering the host environment and pulling code from the network, creating supply-chain and system-integrity risk if invoked automatically or on shared infrastructure.

Vague Triggers

Medium
Confidence
86% confidence
Finding
The trigger text uses a mandatory activation rule ('must trigger') with broad keyword coverage and no clear exclusions, making it easy for the skill to activate in contexts where it is not appropriate. Over-broad triggering can cause unintended tool execution, unnecessary data transfer to external services, or environment changes from the bootstrap logic, especially when the skill is user-invocable and network-capable.

Static analysis

No suspicious patterns detected.