Back to skill

Security audit

AI视频翻译 | 视频字幕翻译 | 视频语音翻译 | 视频本地化 | 青虎AI

Security checks across malware telemetry and agentic risk

Overview

The skill matches its video-translation purpose, but it asks agents to install and upgrade unpinned global tooling and upload local media to a third-party service without clear user confirmation.

Install only if you are comfortable with qhkit being installed or upgraded on your machine, your API token being configured for the service, and selected local videos being uploaded for processing. Prefer approving each install, upgrade, and upload explicitly, and avoid confidential or regulated media unless that transfer is acceptable.

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:37
Finding
Unpinned Third-Party CLI Installation and Automatic Upgrade## Vulnerability Details **File Location**: `SKILL.md:6`, `SKILL.md:37-43`, and `SKILL.md:58-64` **Vulnerability Type**: Unpinned and automatically upgraded third-party dependency **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 accompanying instructions also permit installation through an alternate registry or direct execution with `npx`: ```text Default to the official npm registry; if it is slow or times out, add --registry=https://registry.npmmirror.com. Only when global installation fails because of permissions should npx @iqinghu/qhkit <command> ... be used. ``` Automatic upgrades are instructed as follows: ```bash npm i -g @iqinghu/qhkit@latest ``` ### Technical Analysis The Skill installs and executes `@iqinghu/qhkit` without pinning a reviewed version or verifying package integrity. It further instructs the agent to install `@latest` in response to version notices, including upgrade instructions supplied by the existing CLI. npm packages may execute lifecycle scripts during installation, and the installed CLI subsequently runs arbitrary package code. Therefore, the effective code executed by the Skill can change after the Skill itself has been reviewed. Use of an alternate registry adds another distribution party to the trust chain. This is a supply-chain weakness rather than evidence that the current package is malicious. The package name is consistent across the documentation, so no typosquatting or dependency-confusion attack is directly demonstrated. Nevertheless, a compromised publisher account, malicious package release, compromised registry, or altered transitive dependency could introduce executable code. The separately flagged Node.js checksum pipeline is not a `curl | bash` execution pattern. I ...[truncated 1710 chars]
Remediation
## Remediation Suggestions 1. Pin `@iqinghu/qhkit` to a specifically reviewed version in both the metadata installer and all command examples. 2. Verify the package against an expected integrity digest or a controlled lockfile before installation. 3. Remove automatic installation of `@latest`. Require explicit user approval before changing the installed version. 4. Do not blindly execute upgrade commands returned in CLI messages. Validate upgrades against a trusted, documented version policy. 5. Use only an explicitly trusted registry. If a mirror remains supported, document its additional trust implications and verify package integrity independently of the registry. 6. Disable npm lifecycle scripts during installation where compatible, for example with `--ignore-scripts`, and separately review any required installation steps. 7. Prefer a project-local, sandboxed installation over a global installation. Run the CLI with a dedicated low-privilege account or container that can access only the intended media files. 8. Limit token exposure by passing credentials through a narrowly scoped environment and ensuring they are not written to logs, shell history, or broadly readable configuration files. 9. Document the expected package publisher, package version, registry, and checksum so unexpected changes can be rejected before execution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill directs the agent to install Node and the qhkit package, modify PATH, and potentially change the local environment, but it does not require an explicit user-facing consent step before making those system changes. In an agent setting, this can lead to unanticipated software installation, shell profile changes, or execution of network-fetched tooling on the host, which increases supply-chain and environment-integrity risk.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill states that local image/video paths can be passed directly and that the CLI will automatically upload them to obtain a URL, but it does not require a clear warning that local files will be transmitted to a third-party service. This creates a privacy and data-handling risk because users may believe processing is local when sensitive media is actually being uploaded externally.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.