Back to skill

Security audit

Driver License Ocr

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed driver-license OCR skill that sends a user-selected document to SCNet’s remote OCR API, which is sensitive but aligned with its stated purpose.

Install only if you are comfortable sending driver-license images or PDFs to SCNet’s remote OCR service. Use it only on documents you are authorized to process, keep the API key out of chats and source control, restrict the local credential file permissions, and delete local copies or OCR outputs when no longer needed.

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

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill clearly instructs reading a local file path, making outbound network requests to a third-party OCR API, and invoking a Python script from the shell, yet it declares no permissions. This creates a transparency and governance gap: users or orchestrators may not realize the skill can access sensitive local files and exfiltrate document images off-device.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The document shows OCR processing of highly sensitive identity data, including name, ID number, address, birth date, and stamped document contents, but provides no warning about personal data handling, minimization, retention, or consent requirements. In this skill context, the risk is elevated because driver license OCR inherently processes regulated PII, and users may upload documents without understanding that the data is sent to a third-party external API.

Missing User Warnings

Low
Confidence
78% confidence
Finding
The API documentation instructs users to send a Bearer token in the Authorization header but does not warn that the API key is a secret that must not be exposed in logs, client-side code, screenshots, or shared examples. While this is common in API docs, omission of credential-handling guidance can lead to accidental leakage and unauthorized use of the OCR service.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The script transmits the user-provided driver's license image to a third-party OCR service, but there is no explicit disclosure or consent prompt at the point of upload. Because driver's licenses contain highly sensitive personal data, silent external transmission creates a real privacy and data-handling risk even if the behavior is functionally intended.

Missing User Warnings

Low
Confidence
92% confidence
Finding
The manifest requires an API credential and implies use of a third-party OCR service, but it does not warn users that documents and data may be transmitted externally or explain how the credential is used. For an OCR skill handling driver’s license images and extracted identity data, this omission can lead to uninformed disclosure of sensitive personal information and accidental misuse of credentials.

External Transmission

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

### 输出
Confidence
95% confidence
Finding
The skill sends uploaded driver's license images to an external third-party endpoint, which constitutes transmission of highly sensitive personal data off-device. Even though the documentation discloses this, the context makes it inherently risky because the data includes identity information that could be abused if intercepted, retained, or mishandled by the service provider.

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
92% confidence
Finding
The code is hardwired to send data to an external network endpoint at api.scnet.cn, which means sensitive identity documents leave the local environment for third-party processing. In the context of OCR for driver's licenses, this external transmission materially increases privacy, compliance, and data-exposure risk.

Static analysis

No suspicious patterns detected.