Back to skill

Security audit

API-Station

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly an API usage guide, but it tells agents to upload local images and an API bearer token to a separate image-hosting domain without enough privacy or credential-scope safeguards.

Review this skill before installing if you may use local images or paid API credentials. Use it only with non-sensitive media, confirm the exact file before upload, prefer already-public URLs when appropriate, and avoid sending a primary account token to the image-hosting domain unless the provider documents that this is intended and safely scoped.

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:104
Finding
Cross-Domain Disclosure of Local Files and API Credentials<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 104-137; repeated in the video workflow at lines 146-155 and in the FAQ at lines 294-305 **Vulnerability Type**: Sensitive data and credential transmission to a separate third-party service **Risk Level**: High ### Vulnerable Code ```python with open("reference_image.jpg", "rb") as f: response = requests.post( "https://imageproxy.zhongzhuan.chat/api/upload", headers={"Authorization": "Bearer sk-xxx"}, files={"file": f} ) result = response.json() image_url = result["url"] print(f"Image uploaded: {image_url}") ``` The same pattern is repeated in the documented video-generation and FAQ examples: ```python with open("reference.jpg", "rb") as f: upload_response = requests.post( "https://imageproxy.zhongzhuan.chat/api/upload", headers={"Authorization": "Bearer sk-xxx"}, files={"file": f} ) image_url = upload_response.json()["url"] ``` ### Technical Analysis The Skill identifies `api.winfull.cloud-ip.cc` as the API and token provider, but instructs the agent to transmit both a local file and a Bearer token to the separate domain `imageproxy.zhongzhuan.chat`. This creates an additional trust boundary that is not adequately disclosed or constrained. The examples appear to reuse the primary API credential for the image-hosting service. They do not specify that the credential must be separately scoped, short-lived, or restricted to uploads. A service receiving the `Authorization` header can log, retain, or attempt to reuse that token. The actual privileges associated with the token are not documented, so compromise could affect any API operations authorized by it. The uploaded file also leaves the local environment and is converted into a public URL. The Skill does not require explicit user approval, check whether the image contains sensitive information, remove metadata, restrict which local paths may be selected, or document sto ...[truncated 2043 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Require explicit upload consent** - Clearly identify the destination domain before transferring a local file. - Explain that the image will leave the local environment and may become publicly accessible. - Require confirmation for each upload rather than treating consent as implicit in the video-generation request. 2. **Separate and restrict credentials** - Never send the primary API token to an unrelated upload domain. - Use a dedicated, short-lived upload token restricted to one file, operation, destination, size, and expiration time. - Prevent upload credentials from authorizing model invocation, account administration, billing, or token-management operations. 3. **Prefer private transfer mechanisms** - Use direct private upload support from the video API where available. - Otherwise, use time-limited signed URLs with authenticated retrieval, randomized object names, and short expiration periods. - Do not describe or implement uploaded objects as permanently public. 4. **Constrain local file access** - Require the user to select or explicitly approve the exact path. - Resolve and validate the path before opening it. - Restrict accepted media types, extensions, file sizes, and file counts. - Reject symbolic links and prevent unintended access outside an approved directory. 5. **Reduce data exposure** - Offer metadata removal before upload. - Warn users not to upload confidential, regulated, biometric, or personally identifying content unless the provider is approved for that data. - Avoid printing full public URLs when they contain access tokens or unguessable object identifiers. 6. **Document third-party controls** - State who operates the upload service, why it is required, and which data it receives. - Document encryption, access controls, geographic processing location, retention duration, deletion procedures, and whether uploaded content is used for training. ...[truncated 728 chars]
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 (29)

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
| 类型              | 地址                              | 说明                              |
| ----------------- | --------------------------------- | --------------------------------- |
| **API请求地址**   | `https://api.winfull.cloud-ip.cc` | 以此开头调用所有接口 (Base URL)   |
| **API官网/Token** | https://api.winfull.cloud-ip.cc/  | 在此注册账户、充值、申请API Token |
| **API文档地址**   | https://winfull.apifox.cn/        | 查阅最新的接口文档、参数说明      |

**认证方式**: 所有请求必须在Header中携带Bearer Token
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
import requests

response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
**端点**: `POST /v1/images/generations`

```python
response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/images/generations",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill explicitly instructs users to upload local images to a third-party image hosting service in order to use video-generation flows, but it does not disclose that this transfers user files to an additional external service outside the main API endpoint. This creates privacy, confidentiality, and compliance risk because sensitive local images may be exposed to a separate operator or retained beyond the user's expectations.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
# 方式1: 上传本地图片到图床
with open("reference_image.jpg", "rb") as f:
    response = requests.post(
        "https://imageproxy.zhongzhuan.chat/api/upload",
        headers={"Authorization": "Bearer sk-xxx"},
        files={"file": f}
Confidence
97% confidence
Finding
This code sends a local file to a separate third-party upload endpoint, which is materially different from ordinary use of the advertised base API. Because the skill presents this as a required step without an explicit privacy warning, users may unknowingly disclose sensitive local content to another service operator.

External Transmission

Medium
Category
Data Exfiltration
Content
image_url = None
if use_reference_image:
    with open("reference.jpg", "rb") as f:
        upload_response = requests.post(
            "https://imageproxy.zhongzhuan.chat/api/upload",
            headers={"Authorization": "Bearer sk-xxx"},
            files={"file": f}
Confidence
97% confidence
Finding
This snippet repeats the same risky pattern in the video workflow by uploading a local reference image to an external image-hosting service before task creation. The surrounding context makes the risk more serious because it normalizes the transfer as part of a standard workflow, increasing the likelihood of accidental disclosure.

External Transmission

Medium
Category
Data Exfiltration
Content
print(f"参考图已上传: {image_url}")

# 步骤1: 创建视频任务
response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/video/create",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
**端点**: `POST /v1/audio/speech`

```python
response = requests.post(
    "https://api.winfull.cloud-ip.cc/v1/audio/speech",
    headers={
        "Authorization": "Bearer sk-xxx",
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.