Back to skill

Security audit

Billing System

Security checks for vulnerabilities and agentic risk

Overview

This billing skill is coherent, but it sends sensitive customer and loan spreadsheets to an external cloud service with weak disclosure and control around registration, upload, credentials, and returned ZIP files.

Review this carefully before installing. Use the online path only if you are allowed to send the workbook's customer and loan data to the listed cloud endpoint, and ask the publisher for operator identity, retention, deletion, and confidentiality terms. Prefer the local EXE only if you can verify its provenance separately. Do not store the key in shared folders or source control, and inspect returned ZIP contents before extracting them.

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

Warning
Location
SKILL.md:54
Finding

API Credential Exposure Through URL Query Parameters

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 54-74; related credential-storage guidance at line 168
Vulnerability Type: API credential exposure and insecure secret handling
Risk Level: Medium

Vulnerable Code

bash
curl -o template_input.xlsx \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/template?key=$KEY"
bash
curl -X POST \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/generate?key=$KEY" \
  -F "file=@template_input.xlsx" \
  -o result.zip

The documentation also recommends saving the key to a local file but does not specify access restrictions, encryption, or use of an operating-system secret store.

Technical Analysis

The API credential is transmitted as the key URL query parameter. Although HTTPS protects the URL in transit, query strings are commonly retained by web servers, reverse proxies, cloud-function telemetry, monitoring systems, command histories, diagnostic output, and endpoint security products. Anyone with access to these records could recover the credential.

Saving the credential to an unspecified local file introduces an additional disclosure risk if the file inherits permissive access rights, is synchronized to cloud storage, included in backups, or committed to source control.

This behavior exceeds secure minimum-privilege practices because the same authentication goal can be achieved without placing reusable credentials in URLs. The issue is limited to credential handling; the audited file does not demonstrate privilege escalation or remote code execution.

Attack Path

  1. A user follows the documented command and invokes the template or generation endpoint with the API key in the query string.
  2. The complete URL is retained in shell history, proxy logs, server access logs, cloud telemetry, or monitoring records.
  3. Alternatively, the user stores the key in a locally readable file as suggested by the documentat ...[truncated 1066 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove API keys from all URL query parameters.
  2. Transmit credentials through an HTTP authorization header, for example:
    bash
    curl -H "Authorization: Bearer $KEY" \
      "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/template"
    
  3. Update the server to reject credentials supplied through query strings.
  4. Configure the cloud function, reverse proxy, and monitoring systems to redact authorization headers and other authentication data.
  5. Do not print the key to the terminal unless explicitly requested, because terminal output may be logged.
  6. Store the key in an operating-system credential manager. If file storage is unavoidable, use a dedicated file restricted to the current account, such as mode 0600 on compatible systems.
  7. Warn users not to commit credential files to source control, synchronize them to shared storage, or include them in unprotected backups.
  8. Use short-lived, narrowly scoped tokens and provide revocation and rotation mechanisms.
  9. Document the exact permissions associated with each key and enforce rate limits and server-side authorization for every endpoint.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Automatically reaching out to a third-party registration endpoint and instructing local storage of the returned key creates an external trust dependency and credential-handling risk. In a skill that later processes sensitive billing records, establishing that relationship silently makes subsequent data transfer more likely without sufficient user scrutiny.

Content

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

此 Skill 不含 API Key。首次调用时 自动注册试用账户(3 次配额):

text
1. curl "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/auto-register"
   → 返回 {"key":"wb-xxxxxxxx","user":"试用用户_xxxx","quota":3,"role":"trial"}
2. 把返回的 key 保存为本地变量,后续所有请求带上这个 key

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Automatically reaching out to a third-party registration endpoint and instructing local storage of the returned key creates an external trust dependency and credential-handling risk. In a skill that later processes sensitive billing records, establishing that relationship silently makes subsequent data transfer more likely without sufficient user scrutiny.

Content

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

此 Skill 不含 API Key。首次调用时 自动注册试用账户(3 次配额):

text
1. curl "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/auto-register"
   → 返回 {"key":"wb-xxxxxxxx","user":"试用用户_xxxx","quota":3,"role":"trial"}
2. 把返回的 key 保存为本地变量,后续所有请求带上这个 key

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Fetching the template from a remote endpoint introduces reliance on external content for a sensitive financial workflow. In context, the workbook will be populated with billing data and then re-uploaded, so a malicious or altered template could manipulate fields, formulas, or expectations in ways that affect data handling or output correctness.

Content

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

Step 2: 下载模板

bash
curl -o template_input.xlsx \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/template?key=$KEY"

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Fetching the template from a remote endpoint introduces reliance on external content for a sensitive financial workflow. In context, the workbook will be populated with billing data and then re-uploaded, so a malicious or altered template could manipulate fields, formulas, or expectations in ways that affect data handling or output correctness.

Content

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

Step 2: 下载模板

bash
curl -o template_input.xlsx \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/template?key=$KEY"

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to upload a populated billing spreadsheet to a remote cloud endpoint without a prominent warning that customer financial data will leave the local environment. Billing workbooks are highly sensitive and may contain identities, balances, rates, and repayment histories, so silent transmission creates substantial privacy, compliance, and confidentiality risk.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

The generate step fetches a ZIP result from a remote service based on uploaded financial data, creating a supply-chain style trust dependency on external content. Because the workflow immediately follows with extraction instructions, any malicious or malformed archive from the service could lead to unsafe file writes or delivery of deceptive output.

Content

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

Step 4: 生成对账单

bash
curl -X POST \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/generate?key=$KEY" \
  -F "file=@template_input.xlsx" \
  -o 对账单结果.zip

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The agent workflow directs automatic account registration, downloading a template, editing local files, uploading data, and unzipping returned content, all without requiring informed user approval at each sensitive step. This combines identity/account creation, external transmission of financial records, and handling of untrusted archives, increasing the chance of unintended data exposure or unsafe file operations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The skill is written entirely in Chinese and the agent trigger/instruction text assumes Chinese phrasing and Chinese-named outputs, with no indication that language selection is optional. This can violate language or locale policy where user-facing skills should not force a specific language without opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

This step transmits template_input.xlsx to an external service, and the workbook is explicitly designed to contain customer information, loan records, repayment records, balances, and interest data. In the billing context, such data is financially sensitive, so sending it to a third-party endpoint without strong trust guarantees, minimization, and explicit consent is dangerous.

Content

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

Step 4: 生成对账单

bash
curl -X POST \
  "https://1440636612-55rmw631p6.ap-beijing.tencentscf.com/generate?key=$KEY" \
  -F "file=@template_input.xlsx" \
  -o 对账单结果.zip

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger phrases "生成对账单" and "制作账单" are broad, natural-language requests that can overlap with ordinary conversation and may cause the agent to invoke the skill unexpectedly. Because the skill then performs registration, file creation/editing, upload, and archive extraction, accidental activation can lead to unreviewed processing and disclosure of sensitive billing data.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.