Back to skill

Security audit

高清写实去AI感 | 写实高清 | 超写实 | 消除AI感 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its advertised image-enhancement purpose, but it should be reviewed because it instructs agents to install and run a mutable global npm CLI that handles local images and service credentials.

Install only if you trust the @iqinghu/qhkit package and the Qinghu service with the images you submit and the API token used for billing. Prefer a pinned reviewed package version, avoid automatic @latest upgrades or npx fallback, and confirm the estimated credit cost before 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:70
Finding
Unpinned Third-Party Package Installation and Runtime Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 70–91 **Vulnerability Type**: Unpinned and mutable npm dependency execution **Risk Level**: Medium ### Vulnerable Code ```bash npm i -g @iqinghu/qhkit ``` ```text Only when global installation fails due to permissions and privilege elevation is unavailable, fall back to: npx @iqinghu/qhkit <command> ... ``` ```bash npm i -g @iqinghu/qhkit@latest ``` ### Technical Analysis The Skill instructs the Agent to download and execute `@iqinghu/qhkit` without pinning it to an exact, previously audited version or verifying package integrity. The package is required for the declared image-processing functionality, but resolving an unspecified version or `@latest` permits the executable content to change after the Skill itself has been reviewed. The `npx` fallback can download and immediately execute package code. Global installation also broadens the dependency's availability and impact beyond an isolated project environment. npm packages can execute JavaScript through package lifecycle hooks and through the installed CLI entry point. The documented fallback to `registry.npmmirror.com` additionally expands the set of infrastructure that must be trusted. No evidence shows that this mirror or the named package is currently malicious; the vulnerability is the mutable, unverified supply-chain execution process. The separately flagged command at line 79 is not a remote-script execution vulnerability. It downloads a checksum manifest and passes a selected entry to `sha256sum -c`; it does not pipe content into a shell. The Node.js archive is only extracted after checksum verification. ### Attack Path 1. An attacker compromises the npm package publisher account, package release process, npm registry delivery path, or configured fallback registry. 2. The attacker publishes or serves a malicious version of `@iqinghu/qhkit`. 3. The Agent follows the Skill's bootstrap or upgrade instructions using an ...[truncated 1278 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to an exact reviewed version rather than using an unversioned package or `@latest`: ```bash npm install --global @iqinghu/qhkit@<reviewed-exact-version> ``` 2. Record and verify the expected package integrity hash or signed provenance before execution. Where practical, use a lockfile with an exact version and npm integrity metadata. 3. Remove automatic upgrades to `@latest`. Present the available update and require explicit user approval after the target version and release provenance have been reviewed. 4. Avoid global installation where possible. Install into an isolated, dedicated directory or ephemeral environment with only the filesystem and network access required for image processing. 5. Do not use `npx` as an automatic fallback for a package that has not already been verified. If it must be used, specify an exact version and prevent silent resolution to another release. 6. Consider installing with lifecycle scripts disabled when compatible with the package: ```bash npm install --ignore-scripts --global @iqinghu/qhkit@<reviewed-exact-version> ``` Test this configuration because some legitimate packages require installation scripts. 7. Prefer the primary npm registry and require explicit user approval before switching to a mirror. Apply the same version and integrity verification regardless of registry. 8. Run the CLI with least privilege. Expose only the requested input file, avoid unnecessary environment variables, and supply the service token through a narrowly scoped secret mechanism rather than a broadly inherited shell environment. ]]>
Vulnerability Patterns
  • 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The manifest description includes mandatory trigger language tied to broad, common image-editing requests such as '写实高清' and '提升画面统一度', which can cause the skill to activate for many ordinary image tasks beyond its narrow intended use. In an agent environment, this increases the chance of inappropriate tool selection, unnecessary paid API calls, and misrouting away from better-matched or safer skills.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger examples are ambiguous and lack activation boundaries, using phrases like '要写实一点' and '画面不统一' that commonly appear in normal editing conversations. Because the skill is user-invocable and connected to a billable external workflow, this ambiguity can lead to accidental invocation, user confusion, and unauthorized or unnecessary consumption of credits.

Static analysis

No suspicious patterns detected.