Back to skill

Security audit

视频号视频下载

Security checks for vulnerabilities and agentic risk

Overview

The skill performs the advertised WeChat video link parsing, but users should understand that links and an API key are sent to RedFox and only use it for content they are allowed to download.

Install only if you are comfortable sending submitted WeChat video links and your RedFox API key to RedFox for processing. Use it only for videos you own or have permission to download, and keep the API key out of chats, logs, repositories, and shared config files.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Tainted flow: 'HEADERS' from os.environ.get (line 41, credential/environment) → requests.post (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/parse_video_download.py (reported line 55)May include surrounding context.

python
payload = {"url": video_url, "source": "视频号视频下载-GitHub"}

    try:
        resp = requests.post(API_URL, headers=HEADERS, json=payload, timeout=REQUEST_TIMEOUT)
    except requests.exceptions.Timeout:
        return {"success": False, "reason": "请求超时,请稍后重试"}
    except requests.exceptions.ConnectionError:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README explicitly promotes obtaining 'real download' and 'watermark-free' links for third-party WeChat Channels videos and archiving them, but provides no warning about copyright, consent, or platform-terms restrictions. In a skill designed to retrieve downloadable copies of others' content, this omission materially increases the likelihood of misuse for unauthorized copying and redistribution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The use cases encourage downloading competitor and third-party videos for mashups, analysis, and archiving without any caution about authorization, privacy, or terms-of-service limitations. Because the skill context is specifically about extracting direct download URLs for third-party media, these examples normalize potentially infringing or non-consensual collection behavior and make misuse more likely.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README promotes downloading and archiving third-party videos for reuse, competitor analysis, and remixing, but omits warnings about copyright, authorization, consent, and lawful handling of downloaded media. In this context, the skill directly facilitates acquisition of potentially protected content, making misuse more likely and increasing legal/compliance exposure for users and operators.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill is advertised as callable through broad natural-language requests such as 'download this video' or 'parse these links' without tightly scoped invocation boundaries. That increases the chance of unintended activation and silent handling of third-party content links, which is riskier here because the skill performs external-content retrieval and exposes ephemeral download URLs.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill requires network access and an API key via environment/config, but it does not declare an explicit tool scope such as allowed-tools or permissions. This creates an under-specified trust boundary: a host may enable broader capabilities than users expect, increasing the chance of unintended outbound requests or secret exposure through connected tooling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill promotes downloading and reusing WeChat video content, including for reposting and competitor archiving, without any warning about authorization, copyright, platform terms, or privacy considerations. This meaningfully increases the risk of misuse for unauthorized copying or redistribution of third-party content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The workflow instructs the agent to send user-provided WeChat video links to the third-party service redfox.hk, but it does not require any user-facing disclosure or consent before transmitting that data. Even if the shared URL seems low-sensitivity, it may reveal user interests, private/shared content identifiers, or associated metadata, creating avoidable privacy and data-handling risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The code sends user input to an external endpoint, which is expected for this skill's functionality, but it still constitutes a real data egress path. In the context of an agent skill handling user-supplied links, this is more sensitive because the external transfer is core behavior yet not surfaced clearly to the user, increasing privacy and trust concerns.

Content

Scanner excerpt · scripts/parse_video_download.py (reported line 55)May include surrounding context.

python
payload = {"url": video_url, "source": "视频号视频下载-GitHub"}

    try:
        resp = requests.post(API_URL, headers=HEADERS, json=payload, timeout=REQUEST_TIMEOUT)
    except requests.exceptions.Timeout:
        return {"success": False, "reason": "请求超时,请稍后重试"}
    except requests.exceptions.ConnectionError:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script transmits user-provided video URLs and the operator's API credential to a third-party service without any explicit notice or consent step at runtime. Shared links can contain identifying or private information, so silent transmission to an external vendor creates a privacy and data-governance risk, especially in an agent skill where users may assume local processing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill instructs users to configure an API key but provides no warning about safe credential handling. Users may place the key in insecure locations, paste it into chats, commit it to dotfiles repositories, or expose it to other skills/processes that can read environment variables.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The script's user-facing docstring, errors, and CLI usage are entirely in Chinese, which imposes a specific language on all users without opt-in or alternative locale handling. The policy specifically flags language or locale constraints when they are forced rather than offered as a choice.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.