Back to skill

Security audit

上市公司财务报告分析

Security checks for vulnerabilities and agentic risk

Overview

The skill is a simple stock-report lookup guide, but it tells users to send an API key over unencrypted HTTP.

Review before installing or using. The skill does not appear to contain executable or hidden behavior, but you should not send a real API key using the documented HTTP URLs. Only use it if the provider supports HTTPS for the API and returned report pages, and rotate any key that may already have been used over plaintext HTTP.

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:27
Finding
API Credential Transmitted Over Unencrypted HTTP## Vulnerability Details **File Location**: `SKILL.md:27-28`, with additional insecure HTTP examples at `SKILL.md:53`, `SKILL.md:63-64`, and `SKILL.md:70-71` **Vulnerability Type**: Plaintext transmission of sensitive credentials **Risk Level**: High ### Vulnerable Code ```text GET http://api.beawan.com/beawanSkill/api/skill/report Header: X-API-KEY: <your-api-key> ``` The returned report URL is also documented as plaintext HTTP: ```json { "code": 0, "data": { "url": "http://api.beawan.com/industry/html/load?name=jm43RF6Yb*K8GjWoO9VbDYxmHGa5rwppT97kMmM4mgM=" } } ``` The usage examples reinforce the insecure transport: ```text GET http://api.beawan.com/beawanSkill/api/skill/report?comCode=000001&year=2024&type=年报 X-API-KEY: sk-your-api-key-here ``` ```text GET http://api.beawan.com/beawanSkill/api/skill/report?comCode=600519&year=2024&type=中报 X-API-KEY: sk-your-api-key-here ``` ### Technical Analysis The Skill instructs clients to send an API credential in the `X-API-KEY` header over plaintext HTTP. HTTP provides neither transport encryption nor server integrity protection. An attacker able to observe or modify network traffic—such as a malicious Wi-Fi operator, compromised router, proxy, ISP-level intermediary, or adjacent network attacker—can capture the API key, inspect requested company and report parameters, or modify the server response. The report URL returned by the service also uses HTTP. Consequently, even if the initial API endpoint were corrected independently, report content could still be intercepted, replaced, or redirected while in transit. ### Attack Path 1. A user configures the Skill with a valid API key. 2. The Agent follows the documented example and sends a request to the HTTP endpoint with the key in the `X-API-KEY` header. 3. An attacker positioned on the network intercepts the unencrypted request and obtains the API key. 4. The ...[truncated 998 chars]
Remediation
## Remediation Suggestions 1. Replace every API and report URL with an authenticated HTTPS endpoint. 2. Configure the server to reject requests carrying credentials over HTTP rather than relying solely on redirects, because the credential is already exposed before an HTTP redirect is received. 3. Enable HTTP Strict Transport Security after validating HTTPS deployment. 4. Use modern TLS configuration, valid certificates, and certificate verification in all clients. 5. Ensure redirects never forward the `X-API-KEY` header to a different origin. 6. Update every documentation example to use `https://api.beawan.com/...`. 7. Rotate API keys that may previously have been transmitted using the documented HTTP endpoint. 8. Apply least-privilege scopes, expiration, revocation, usage quotas, and anomaly monitoring to API keys to limit the consequences of future disclosure. 9. Ensure report pages and all embedded resources are served exclusively through HTTPS to prevent content tampering or mixed-content exposure.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Missing User Warnings

High
Confidence
99% confidence
Finding
The documentation instructs clients to transmit an API key in an HTTP header over plain HTTP, which exposes the credential to interception by anyone on the network path. Because the same documentation also uses plain HTTP in examples, users are likely to follow the insecure pattern and leak reusable secrets.

External Transmission

Medium
Category
Data Exfiltration
Content
**查询报告地址**

```
GET http://api.beawan.com/beawanSkill/api/skill/report
Header: X-API-KEY: <your-api-key>
```
Confidence
97% confidence
Finding
This endpoint documentation shows external transmission to a third-party service over plain HTTP. In this context, the request includes an API key, so the external transmission is not merely informational traffic but a credential-bearing request vulnerable to interception or tampering.

Natural-Language Policy Violations

Medium
Confidence
86% confidence
Finding
The instructions require that the `type` parameter be passed as specific Chinese strings such as `中报` and `年报`, and explicitly prohibit other encodings or representations. This imposes a language-specific requirement without stating that the skill is intentionally limited to a Chinese locale or offering an opt-in choice.

External Transmission

Medium
Category
Data Exfiltration
Content
{
  "code": 0,
  "data": {
    "url": "http://api.beawan.com/industry/html/load?name=jm43RF6Yb*K8GjWoO9VbDYxmHGa5rwppT97kMmM4mgM="
  }
}
```
Confidence
84% confidence
Finding
The returned report URL is also plain HTTP, which makes downstream access to the report vulnerable to man-in-the-middle tampering, content injection, or traffic observation. Even if no credential is in this specific URL, users may be directed to untrusted or modified content because the transport is unauthenticated.

External Transmission

Medium
Category
Data Exfiltration
Content
查询平安银行 2024 年年报:

```
GET http://api.beawan.com/beawanSkill/api/skill/report?comCode=000001&year=2024&type=年报
X-API-KEY: sk-your-api-key-here
```
Confidence
97% confidence
Finding
This example repeats the insecure pattern of sending requests to a plain HTTP endpoint while supplying an API key header. Example code in documentation materially increases risk because users commonly copy it directly into production workflows, spreading credential exposure.

External Transmission

Medium
Category
Data Exfiltration
Content
查询贵州茅台 2024 年中报:

```
GET http://api.beawan.com/beawanSkill/api/skill/report?comCode=600519&year=2024&type=中报
X-API-KEY: sk-your-api-key-here
```
Confidence
97% confidence
Finding
This second usage example again instructs clients to send an API key over unencrypted HTTP, reinforcing an insecure integration pattern. Repetition across examples makes exploitation more likely because it normalizes unsafe credential handling and broadens the number of affected consumers.

Static analysis

No suspicious patterns detected.