Back to skill

Security audit

bank_check_ocr

Security checks across malware telemetry and agentic risk

Overview

This skill performs the advertised bank-check OCR workflow and clearly discloses that sensitive check images are uploaded to a third-party OCR API.

Install only if you are comfortable sending bank-check images, including account numbers, signatures, stamps, and amounts, to the configured SCNet OCR service. Confirm you have authorization from the relevant account/check holders, keep the API key out of chat, and do not set SCNET_API_BASE to an endpoint you do not trust.

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 (6)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The documentation explicitly directs callers to upload image/PDF/archives to a third-party OCR endpoint but does not warn that the full document contents and extracted fields will leave the local system and be processed remotely. In the context of a bank-check OCR skill, this is particularly sensitive because checks can contain account numbers, names, signatures, seals, and financial amounts, so missing disclosure can cause unintended exfiltration of regulated financial data.

External Transmission

Medium
Category
Data Exfiltration
Content
- **读取本地文件**:仅读取用户作为 `filePath` 参数显式提供的本地图片文件。
- **执行子进程**:调用 `python3 scripts/main.py` 脚本完成识别流程。
- **网络传输**:将用户提供的支票图片以 `multipart/form-data` 形式上传至 `SCNET_API_BASE` 所配置的 OCR 接口(默认 `https://api.scnet.cn/api/llm/v1/ocr/recognize`)。
- **读取凭据**:从进程环境变量或 `config/.env` 中读取 `SCNET_API_KEY` 和 `SCNET_API_BASE`。

---
Confidence
96% confidence
Finding
This skill transmits bank check images containing highly sensitive financial data to a third-party endpoint over the network. Even though the transfer is documented and appears to be the intended OCR workflow, externalizing account numbers, signatures, amounts, and stamps creates real confidentiality and compliance risk if the service, transport, retention policy, or endpoint configuration is compromised or misused.

External Transmission

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

### 输出
Confidence
90% confidence
Finding
The configurable SCNET_API_BASE means sensitive check data may be sent to whatever endpoint is placed in configuration, not necessarily the trusted default. In a skill handling bank checks, this increases the risk of exfiltration to an attacker-controlled host if configuration is tampered with or mis-set.

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
88% confidence
Finding
The file documents use of an external HTTPS OCR service, which means uploaded check images and derived OCR results are transmitted outside the skill's trust boundary. While external APIs are not inherently malicious, in this skill's context they process highly sensitive banking documents, making the transmission materially risky if users are not informed and if contractual/privacy controls are absent.

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 validate_inputs(ocr_type, file_path):
Confidence
88% confidence
Finding
The skill uploads user-supplied check images to an external OCR service at api.scnet.cn, which is a real data exfiltration boundary because bank checks contain highly sensitive financial and personal information. Even though this is core functionality rather than obviously malicious behavior, transmitting such data to a third party increases privacy, compliance, and data-handling risk.

External Transmission

Medium
Category
Data Exfiltration
Content
permissions:
  - read: local image files provided by the user
  - execute: python3 subprocess to run scripts/main.py
  - network: transmit the provided image to the configured SCNET_API_BASE (default https://api.scnet.cn/api/llm/v1)
  - env: read SCNET_API_KEY and SCNET_API_BASE from the process environment or config/.env

homepage: https://github.com/SCNet-sugon/bank_check_ocr.git
Confidence
92% confidence
Finding
The skill explicitly declares that it will transmit user-provided local check images to an external SCNet API endpoint. Because bank checks contain highly sensitive financial and personal data, sending them to a third party creates a real confidentiality and compliance risk, especially if users are not clearly informed or if the endpoint can be overridden via configuration.

VirusTotal

62/62 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.