Back to skill

Security audit

Shell Image Video

Security checks for vulnerabilities and agentic risk

Overview

The skill is a media-generation RunningHub integration, but it exposes a plaintext API key and directs agents to run unbundled local scripts on sensitive face, video, and audio inputs.

Review before installing. Do not use this version with private faces, voices, or videos unless you are comfortable sending them to RunningHub, and treat the exposed API key as compromised; it should be removed and rotated, with authentication coming from the user's own environment variable.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:89
Finding
Hard-Coded RunningHub API Credential## Vulnerability Details **File Location**: `SKILL.md`, line 89 **Vulnerability Type**: Hard-coded secret / plaintext API credential **Risk Level**: High ### Vulnerable Code ```markdown ## API Key 已预配置:`7192bd7ed2654d1dbfa24ef0c8576705` ``` ### Technical Analysis The skill documentation embeds a credential-like 32-character value and explicitly identifies it as a preconfigured API key. Because `SKILL.md` is distributed with the skill, anyone who can read the package can recover and potentially reuse this credential. This practice also conflicts with the dependency declaration at line 117, which states that the RunningHub token should be supplied through the `RUNNINGHUB_API_KEY` environment variable. Embedding the value defeats secret isolation and prevents secure per-user credential management. The audit cannot verify whether the exposed value remains active or determine its exact permissions because no authenticated validation was performed. Nevertheless, publishing an API credential is a confirmed exposure requiring immediate rotation. ### Attack Path 1. An attacker obtains or reads the distributed skill package. 2. The attacker opens `SKILL.md` and extracts the API key from line 89. 3. The attacker submits requests to the RunningHub API using the exposed credential. 4. If the credential is active, requests execute against the associated account and consume its permissions, quota, and paid resources. 5. The attacker may continue using the credential until it is revoked, rotated, expired, or blocked by the provider. ### Impact Assessment If active, the credential may permit unauthorized use of the associated RunningHub workflows. Potential consequences include: - Consumption of paid image and video generation resources. - Exhaustion of API quotas or rate limits. - Unauthorized workflow execution under the credential owner's identity. - Financial charges to the associated account. - Reduced attribution and auditability because legitimate and unauthor ...[truncated 209 chars]
Remediation
## Remediation Suggestions 1. Revoke and rotate the exposed API key immediately through the RunningHub account or credential-management interface. 2. Remove the plaintext credential from `SKILL.md` and all other project files. 3. Purge the credential from repository history, cached artifacts, release packages, logs, and documentation copies where feasible. 4. Require the credential to be supplied exclusively through the `RUNNINGHUB_API_KEY` environment variable or an approved secret manager. 5. Add startup validation that reports a missing environment variable without printing its value. 6. Ensure scripts never include API keys in command output, error messages, generated JSON, or logs. 7. Use separate credentials for development and production, applying minimum necessary permissions, quotas, expiration, and provider-side restrictions. 8. Add automated secret scanning to version-control hooks and CI pipelines to prevent recurrence. 9. Review provider access logs and billing history for unauthorized activity involving the exposed credential.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Missing User Warnings

High
Confidence
96% confidence
Finding
The skill handles sensitive user-provided images, videos, and audio and sends them to an external service, but it does not clearly disclose that transfer to users. In this context, the omission is dangerous because face images, voice samples, and videos are highly sensitive biometric and personal data, so users may unknowingly expose private content to a third party.

Ssd 3

High
Confidence
99% confidence
Finding
The skill directly exposes a live-looking API key in plaintext documentation, which can be copied and reused by anyone with access to the file. In this skill's context, that enables unauthorized use of a third-party media-generation account, possible billing abuse, quota exhaustion, and abuse of identity/face/voice generation workflows under the owner's credentials.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The manifest description scopes the skill to face swap, motion transfer, dance video generation, and generic RunningHub workflow use. However, the file documents additional capabilities including image comparison, multiple digital-human speaking video generators, TTS-based avatar generation, and unlimited-length lip-sync, which materially broaden the skill's behavior beyond the stated purpose.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The manifest description says to use the skill when asked about "face swap, motion transfer, dance video generation, or RunningHub workflows," but it does not clearly bound when the skill should not activate. Terms like "dance video generation" and especially "RunningHub workflows" are broad enough to overlap with many ordinary requests, increasing the risk of unintended invocation.

Natural-Language Policy Violations

Medium
Confidence
77% confidence
Finding
Most operational instructions, examples, and prompt text are written in Chinese, and example invocations use Chinese-only prompt content such as "场景描述" and "你好,欢迎来到我的频道." There is no statement offering a language choice or clarifying that Chinese is optional, which may conflict with language/locale choice expectations.

Intent-Code Divergence

Low
Confidence
87% confidence
Finding
The documentation says an API key is 'preconfigured' and shows a concrete token value, implying embedded or fixed authentication. Later, the dependency section states the skill depends on the RUNNINGHUB_API_KEY environment variable, which is a different operational model and creates contradictory guidance about how authentication actually works.

Static analysis

No suspicious patterns detected.