Back to skill

Security audit

可灵 Kling 3.0 爆款视频复刻 | LinkPix

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its video-generation purpose, but it asks users to share an API key in chat and installs mutable third-party tooling with broad local effects.

Review before installing. Use this only if you trust the Qinghu/qhkit provider and are comfortable with local package installation and paid generation calls. Do not paste reusable API keys into chat; prefer setting credentials yourself through a local secret store or environment variable, and avoid global or latest-version installs unless you accept the supply-chain risk.

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:52
Finding
Unpinned Third-Party Packages Are Downloaded and Executed<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 52–91 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash npm i -g @iqinghu/qhkit ``` ```bash npx @iqinghu/qhkit <command> ... ``` ```bash npm i -g @iqinghu/qhkit@latest ``` ```bash pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple npx --yes sharp-cli -i source-image -o compressed-image.jpg resize 2048 ``` ### Technical Analysis The Skill instructs the Agent to retrieve and execute third-party packages without pinning exact versions or verifying package integrity. In particular: - `npm i -g @iqinghu/qhkit` resolves the version at installation time. - `@latest` explicitly selects a mutable release pointer. - `npx` can download and immediately execute a package that is not already installed. - `npx --yes` suppresses the normal interactive installation prompt. - Pillow is installed from an external Python package mirror without a pinned version or hash. - The primary CLI is installed globally even though a local or isolated installation would be sufficient for the declared task. These instructions create a supply-chain trust dependency on package maintainers, registry accounts, registry infrastructure, mirrors, and all transitive dependencies. A compromised account, malicious future release, dependency confusion event, or registry compromise could cause attacker-controlled code to execute under the Agent's operating-system account. The separately flagged command at line 61 is not a `curl | bash` execution pipeline. It downloads a checksum manifest and passes text through `grep` to `sha256sum`: ```bash cd /tmp && curl -fsSL https://nodejs.org/dist/v22.22.3/SHASUMS256.txt | grep ' node-v22.22.3-linux-x64.tar.xz$' | sha256sum -c - ``` That command does not directly execute the downloaded response and therefore is not itself confirmed as remote payload execution. However, obtaining both the archive and its checksum from th ...[truncated 1900 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every dependency to an exact, reviewed version instead of using implicit current versions or `@latest`: ```bash npm install --prefix "$WORKDIR/qhkit-runtime" @iqinghu/qhkit@<reviewed-version> python -m pip install pillow==<reviewed-version> ``` 2. Record and verify package integrity using a reviewed lockfile, npm integrity metadata, or independently stored cryptographic hashes. 3. Remove automatic use of `npm i -g` and `npx --yes`. Install dependencies inside a dedicated temporary project, container, or other isolated environment. 4. Do not automatically upgrade in response to remote CLI messages. Present the proposed exact version to the user, require approval, and verify that release before installation. 5. Restrict package lifecycle scripts where compatible: ```bash npm install --ignore-scripts --save-exact <package>@<version> ``` If lifecycle scripts are required, review them before allowing execution. 6. Prefer the official package registry. If a mirror is necessary, pin the expected package hashes so that mirror compromise cannot silently replace artifacts. 7. Run media-processing dependencies with minimum filesystem and network access. Expose only the specific input and output files needed for the operation. 8. Pass API credentials through a secret manager or scoped environment variable. Do not ask users to place reusable API keys directly in conversation text, and ensure child processes receive the token only when required. 9. For the Node.js bootstrap, retain checksum verification but pin the expected checksum in reviewed Skill content or validate a signed release manifest through an independently trusted key. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The skill goes beyond its declared video-cloning purpose by instructing the agent to install Node, npm packages, and even Node binaries, change PATH, and use alternative registries. That materially expands the agent’s execution and supply-chain exposure, creating risk from untrusted package installation, environment modification, and broader command execution unrelated to the user’s immediate content task.

Context-Inappropriate Capability

Medium
Confidence
99% confidence
Finding
The skill explicitly instructs the agent to ask the user for an API key and then set it on the CLI. Requesting credentials directly in chat is dangerous because it encourages disclosure of sensitive secrets into the conversation channel, where they may be retained, logged, or mishandled by the agent or platform.

Vague Triggers

Medium
Confidence
82% confidence
Finding
The manifest description contains a very broad keyword list and mandatory-trigger language, making the skill likely to activate on loose mentions of platforms, models, or general video topics. Overbroad invocation can cause the agent to enter a workflow that installs tools, requests credentials, or performs chargeable actions when the user did not clearly intend to use this specific skill.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The trigger section is ambiguous and lacks clear non-trigger boundaries, so references to Kling 3.0 plus a social-media link may invoke the skill even when the user only wants analysis, discussion, or unrelated help. In this skill, accidental activation is more dangerous because downstream instructions include package installation, credential handling, and potentially billable generation flows.

Ssd 3

High
Confidence
99% confidence
Finding
The skill contains a direct natural-language prompt telling the agent to have the user send their API key in chat. This is a classic secret-collection anti-pattern: it normalizes credential disclosure to an untrusted intermediary and increases the likelihood of credential leakage, reuse abuse, and unauthorized account access if logs or transcripts are exposed.

Static analysis

No suspicious patterns detected.