Back to skill

Security audit

expense_voucher_ocr

Security checks for vulnerabilities and agentic risk

Overview

This skill uploads only user-specified voucher files to Scnet's OCR API, and that sensitive external transfer is clearly disclosed.

Install only if you are comfortable sending selected reimbursement documents to Scnet for OCR. Do not upload files containing secrets, third-party private data, regulated data, or documents your organization forbids sending to outside providers; review Scnet's privacy and retention terms separately.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill documentation indicates capabilities to read local files, invoke a Python script, and send data over the network, yet no explicit permissions are declared. That mismatch weakens security review and user consent because a caller may not realize the skill can access a local document and upload its contents to a third-party API.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The documentation explicitly instructs users to upload invoice images, PDFs, or compressed archives to a third-party OCR endpoint, but provides no privacy notice, consent guidance, retention limits, or data-handling constraints. Because the supported documents include financial and identity-bearing records, this omission can cause unintentional exposure of sensitive personal and business data to an external service.

External Transmission

Medium
Category
Data Exfiltration
Content
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| SCNET_API_KEY | 必需 | Scnet API 密钥 |
| SCNET_API_BASE | https://api.scnet.cn/api/llm/v1 | API 基础地址(一般无需修改) |

### 输出
Confidence
93% confidence
Finding
The skill explicitly transmits user-specified local files containing invoices, travel records, tax data, and medical receipts to an external service at api.scnet.cn. This is a genuine data-exfiltration surface because sensitive personal and financial information leaves the local environment and is exposed to the third-party provider's retention, access, and policy controls.

External Transmission

Medium
Category
Data Exfiltration
Content
# Sugon-Scnet OCR API 文档摘要

## 接口地址
`POST https://api.scnet.cn/api/llm/v1/ocr/recognize`

## 请求头
- `Content-Type: multipart/form-data`
Confidence
84% confidence
Finding
The file documents transmission of uploaded documents to an external domain, which creates a real data exfiltration path outside the local trust boundary. In this skill context, the uploaded content consists of invoices, tickets, tax documents, and medical receipts, making the external transmission more sensitive because these files can contain PII, financial details, and regulated data.

External Transmission

Medium
Category
Data Exfiltration
Content
)
        sys.exit(error_msg)

    config.setdefault('SCNET_API_BASE', 'https://api.scnet.cn/api/llm/v1')
    return config

def recognize_with_retry(ocr_type, file_path, config, retry_count=0):
Confidence
95% confidence
Finding
The script uploads user-supplied files to an external third-party OCR API at api.scnet.cn. Because the skill handles financial receipts and invoices, this creates a real data exfiltration/privacy risk if users are unaware that sensitive documents leave the local environment. The behavior appears core to the skill rather than covertly malicious, but it is still a genuine security concern in enterprise contexts.

Static analysis

No suspicious patterns detected.