Back to skill

Security audit

追剧/追番技能, 支持投屏到电视

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for searching and casting video streams, but it repeatedly tells users to auto-download and run unpinned third-party packages with local-network access.

Install only if you trust the current and future publishers of both `mcporter` and `mcp-vods`, or run pinned, reviewed versions in a sandbox. Be aware that searches and playback actions may reveal viewing interests, media URLs, and local TV addresses to source sites, tooling, or devices on your network.

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

Error
Location
SKILL.md:26
Finding
Unpinned Third-Party Packages Are Downloaded and Executed Automatically<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 26; the same unpinned execution pattern also appears on lines 14-15, 19, and 23. **Vulnerability Type**: Unpinned and automatically executed third-party dependencies **Risk Level**: High ### Vulnerable Code ```shell npx -y mcporter list --stdio 'uvx mcp-vods' --schema --all-parameters ``` ### Technical Analysis The skill directs the agent to execute `mcporter` using `npx -y` and `mcp-vods` using `uvx`. Neither package is constrained to a reviewed version, immutable artifact, integrity hash, or trusted lockfile. The `-y` option permits `npx` to install the resolved package without interactive confirmation. `uvx` similarly resolves and runs the referenced Python package in an ephemeral environment. Consequently, the code executed at invocation time may differ from the code that existed when the skill was audited. This creates a supply-chain security boundary in which registry publishers, compromised maintainer accounts, dependency trees, and package registries can influence locally executed code. The project contains only `SKILL.md`, so no local implementation is available to validate or constrain the effective runtime behavior. ### Attack Path 1. An attacker compromises the publication account, registry artifact, or transitive dependency of `mcporter` or `mcp-vods`. 2. The attacker publishes a malicious version that remains compatible with the package name used by the skill. 3. A user or agent invokes one of the documented commands. 4. `npx -y` and `uvx` resolve and download the unpinned packages without requiring manual package review. 5. Package installation hooks, startup logic, or MCP server code executes with the permissions of the invoking user. 6. The malicious code can access resources available to that user and communicate through the network unless external sandboxing prevents it. ### Impact Assessment Successful exploitation permits arbitrary code execution with the privil ...[truncated 684 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin both packages to exact, reviewed versions rather than resolving the latest available releases. 2. Record resolved dependencies in lockfiles and require immutable integrity hashes where the package managers support them. 3. Avoid automatic installation through `npx -y`; preinstall verified artifacts from an approved dependency repository. 4. Verify package publisher identity, source repository provenance, release signatures, and the complete transitive dependency graph. 5. Run the MCP process in a sandbox or container with: - A read-only or narrowly scoped filesystem. - A minimal environment-variable allowlist. - No access to credentials or unrelated user files. - Restricted outbound network access. - Local-network access limited to explicitly approved devices. 6. Use a controlled internal mirror and dependency allowlist to prevent dependency confusion or unexpected publisher changes. 7. Add automated dependency scanning and require security review before updating pinned versions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (14)

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill instructs use of `npx -y mcporter` without pinning a specific version, so each execution may fetch and run whatever package version is currently published. This creates a supply-chain risk where a compromised upstream package, malicious update, or typo-squatted dependency could lead to arbitrary code execution in the user's environment.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill describes searching multiple source sites and pushing media URLs to TV devices but does not clearly warn users that their search terms, selected URLs, and device addresses may be transmitted to third-party services and local-network endpoints. This omission undermines informed consent and can expose viewing interests, media links, and internal device information.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The server component `uvx mcp-vods` is also unpinned, so the skill may download and run whatever version is currently available. This creates the same supply-chain and arbitrary code execution risk as unpinned `npx`, now affecting the MCP server process itself.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The server component `uvx mcp-vods` is also unpinned, so the skill may download and run whatever version is currently available. This creates the same supply-chain and arbitrary code execution risk as unpinned `npx`, now affecting the MCP server process itself.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The documented `uvx mcp-vods` command lacks version pinning and may execute a newly published or compromised release without review. Because this component brokers searches and playback actions, compromise could affect both privacy and local-device interactions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The documented `uvx mcp-vods` command lacks version pinning and may execute a newly published or compromised release without review. Because this component brokers searches and playback actions, compromise could affect both privacy and local-device interactions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The TV playback example runs `uvx mcp-vods` without pinning, enabling unreviewed code execution in a context that can reach local-network devices. That combination makes compromise more dangerous than a simple read-only content search tool.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The TV playback example runs `uvx mcp-vods` without pinning, enabling unreviewed code execution in a context that can reach local-network devices. That combination makes compromise more dangerous than a simple read-only content search tool.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This line repeats the unpinned `uvx mcp-vods` pattern for Android TV playback. If the package is malicious or compromised, it may misuse local IP configuration and send arbitrary requests to connected devices or exfiltrate data.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This line repeats the unpinned `uvx mcp-vods` pattern for Android TV playback. If the package is malicious or compromised, it may misuse local IP configuration and send arbitrary requests to connected devices or exfiltrate data.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Even the tool-listing example uses unpinned `uvx mcp-vods`, which still requires fetching and executing code. Users may treat listing operations as safe reconnaissance, but they remain subject to the same supply-chain risks.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Even the tool-listing example uses unpinned `uvx mcp-vods`, which still requires fetching and executing code. Users may treat listing operations as safe reconnaissance, but they remain subject to the same supply-chain risks.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The recommendation to prefer `npx -y mcporter` generally institutionalizes an unsafe execution pattern across the skill. Even though this is prose rather than a single command, it encourages repeated use of an unpinned package with supply-chain execution risk.

Natural-Language Policy Violations

Low
Confidence
97% confidence
Finding
All user-facing natural-language content in the skill description is written in Chinese, with no indication that users may interact in other languages or that the skill is intentionally restricted to a Chinese-speaking context. Under the stated policy, forcing a specific language without user opt-in is a locale-policy concern.

Static analysis

No suspicious patterns detected.