Back to skill

Security audit

音视频转写台

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed hosted transcription workflow that sends selected media or URLs to a third-party API, with confirmation and cost-estimate steps before paid or upload actions.

Install only if you are comfortable sending media URLs, selected local media files, and derived transcripts to the We-Media/Mangyun API for processing and billing. Use `--file` only for files you intend to upload, check the price estimate before `--yes`, and avoid sensitive recordings unless you have consent and accept the provider's retention and account terms.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (31)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The documented purpose says the skill transcribes publicly accessible audio/video URLs, but the instructions also expose an extra endpoint (ch-download-url) and support uploading local files with --file. That mismatch can mislead users about what data leaves the machine and what actions the skill is actually authorized to perform.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documented purpose says the skill transcribes publicly accessible audio/video URLs, but the instructions also expose an extra endpoint (ch-download-url) and support uploading local files with --file. That mismatch can mislead users about what data leaves the machine and what actions the skill is actually authorized to perform.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documented purpose says the skill transcribes publicly accessible audio/video URLs, but the instructions also expose an extra endpoint (ch-download-url) and support uploading local files with --file. That mismatch can mislead users about what data leaves the machine and what actions the skill is actually authorized to perform.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documented purpose says the skill transcribes publicly accessible audio/video URLs, but the instructions also expose an extra endpoint (ch-download-url) and support uploading local files with --file. That mismatch can mislead users about what data leaves the machine and what actions the skill is actually authorized to perform.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documented purpose says the skill transcribes publicly accessible audio/video URLs, but the instructions also expose an extra endpoint (ch-download-url) and support uploading local files with --file. That mismatch can mislead users about what data leaves the machine and what actions the skill is actually authorized to perform.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares capabilities that involve environment access, local file read/write, and outbound network use, but it does not explicitly constrain or document tool permissions. This creates an overbroad execution surface where a host agent may grant more access than users expect, increasing the risk of unintended data exposure or unsafe side effects.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file consistently presents the skill description, operating instructions, and user-facing guidance only in Chinese. This effectively forces a specific language for users without documenting an opt-in, language selection, or region-specific justification.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

The skill directs users to send data to an external third-party service and explicitly supports media upload/transcription via the vendor platform. External transmission is contextually expected for a hosted transcription service, but it remains security-relevant because potentially sensitive audio/video content and derived transcripts may leave the local environment.

Content

Scanner excerpt · SKILL.md (reported line 56)May include surrounding context.

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 57)May include surrounding context.

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This line documents an external API endpoint for public product discovery, contributing to a workflow that communicates with a third-party platform. Although expected in context, such outbound requests can reveal usage patterns, network metadata, and potentially authenticated account context when paired with configured keys elsewhere in the workflow.

Content

Scanner excerpt · SKILL.md (reported line 58)May include surrounding context.

md
文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This line instructs use of an authenticated external API endpoint after configuring WM_API_KEY, which means account-linked requests and possibly sensitive workflow metadata are transmitted off-host. In a transcription skill, this is expected but still dangerous if users are not clearly informed about what content, headers, and billing-related data are sent to the vendor.

Content

Scanner excerpt · SKILL.md (reported line 59)May include surrounding context.

md
文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

## 请求身份与安全

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill advertises audio/video transcription, but exposes an additional endpoint ch-download-url that appears to retrieve or transform downloadable content beyond transcription. This expands the skill’s capability surface beyond the declared purpose, increasing the risk of misuse for content acquisition or workflow chaining that users may not expect from a transcription-only tool.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Including a generalized download/retrieval endpoint in a transcription skill creates a capability mismatch that can enable collection of remote media or derived URLs outside the stated business purpose. Even without obvious code execution, this broadens abuse potential and weakens the principle of least functionality for an agent skill handling user-supplied URLs.

Content

No source excerpt is available for this finding.

Cloud Storage Exfiltration

Medium
Category
Data Exfiltration
Confidence
55% confidence
Finding

Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Content

Scanner excerpt · scripts/audio-video-transcription.py (reported line 140)May include surrounding context.

python
# Only an explicit --file can upload a user-selected media file.
    if file_path:
        params["videoUrl" if "videoUrl" in ep.get("params", []) else "audioUrl"] = wm.upload_file(file_path)

    if pages > 1 or checkpoint_path:
        rows = wm.paginate(key, max_pages=pages, checkpoint=checkpoint_path, **params)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The endpoint names and purposes are expressed in Chinese only, such as the labels for video download and audio transcription. Because the file provides no indication of locale scope, fallback language, or user opt-in, it may enforce a specific language presentation contrary to language-choice policy expectations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill manifest says this skill converts public audio/video URLs into text transcripts, but this module is dedicated to fetching product catalogs, computing API pricing, and writing comparison snapshots to disk. Those behaviors are part of billing/platform tooling rather than transcription, so they materially exceed the manifest's described purpose.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

A transcription skill would be expected to submit media for conversion and return text, but this function persists structured snapshots to arbitrary filesystem paths and atomically replaces files. Local stateful diffing/storage is not an obvious requirement for turning audio/video into text.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The raised ValueError message is hard-coded in Chinese, which imposes a specific language on users without opt-in or any documented locale justification in this file. This can violate language/locale policy when the skill otherwise appears general-purpose.

Content

No source excerpt is available for this finding.

Unbounded Resource Access

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.

Content

Scanner excerpt · scripts/wm_core.py (reported line 34)May include surrounding context.

python
from workflow_core import atomic_json, digest, next_params, APIError, workspace_lock
from platform_contract import identity_headers, catalog, price_micros, failure, product_path

EXIT_OK, EXIT_INPUT, EXIT_AUTH, EXIT_API, EXIT_NETWORK, EXIT_TIMEOUT = 0, 2, 3, 4, 6, 124

OFFICIAL = "https://api.we-media.cn"
ROOT = "https://api.we-media.cn"

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

该技能清单描述聚焦于“把音视频转成文字稿”,但此文件实现的是一个通用 API 底座:费用目录查询、任意端点调用、游标分页、缓存、多格式导出以及 CLI 枚举端点等能力,并非仅限于音视频转写流程。虽然网络调用和文件上传对转写是合理实现细节,但这里暴露的通用查询与报表框架明显超出了 manifest 所宣称的单一用途。

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The upload_file() helper transmits arbitrary local file contents to external object storage and returns a public HTTPS URL, but the operation site provides no explicit user-facing confirmation or disclosure at the moment of upload. In a transcription context, uploaded media commonly contains sensitive voice, meeting, or personal data, so silent transfer to third-party storage can cause privacy and compliance issues even if the storage is intended for platform processing.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest says this skill converts public audio/video URLs into transcription text, but this file presents itself as a reusable workflow layer for 'live prices, durable requests and evidence exports' and implements generic locking, JSON persistence, hashing, pagination, and API error handling. None of the visible code performs media ingestion or transcription, so the documented behavior diverges from the skill's stated purpose.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The top-level docstring describes the file as 'Portable gateway workflows: live prices, durable requests and evidence exports,' which is materially different from a skill whose declared purpose is turning audio/video into text. This is not merely incomplete documentation; it points to a different product intent than the manifest claims.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The display name is written only in Chinese ("音视频转写台"), which indicates a fixed language choice in user-facing metadata. There is no accompanying indication of language selection, localization support, or justification for a Chinese-only locale in this file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code file contains natural-language strings that force a specific language/locale for usage instructions and user interaction. Under the policy, locale-specific behavior should not be imposed without user choice unless clearly justified as region-specific, which is not stated here.

Content

No source excerpt is available for this finding.