Back to skill

Security audit

eKYC Suite Document OCR

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed cloud OCR client for consented KYC document images, with sensitive data handling risks that are expected for its purpose.

Install only if you have authorization to process the documents, have configured a trusted HTTPS eKYC backend, and have appropriate masking, access control, retention, and human-review procedures for identity and bank-card data.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
Findings (7)

Tainted flow: 'headers' from os.environ.get (line 47, credential/environment) → requests.post (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/document_ocr.py (reported line 68)May include surrounding context.

python
payload = {"image": media_input(image)}
    if side is not None:
        payload["side"] = side
    response = requests.post(
        f"{endpoint}/api/v1/tools/{tool}",
        json=payload,
        headers=headers,

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · CHANGELOG.md (reported line 1)May include surrounding context.

md
# Changelog

## 1.0.17 - 2026-08-17

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file presents the skill in Chinese while also using English headings and descriptions, but it does not state that the language is region-specific or provide an opt-in/choice for users. Under the policy rule, forcing a specific language or locale without user choice can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The default prompt contains many overlapping trigger phrases for document OCR and verification without tight routing boundaries, which can cause the agent to invoke this skill in situations beyond its intended scope. Because the skill handles sensitive identity documents in KYC workflows, over-broad invocation increases the risk of unnecessary processing of personal data, misuse on unsupported inputs, or accidental use in higher-stakes decisions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill transmits extra environment-derived metadata such as client, workspace, install, and source identifiers in addition to the document image. For an OCR skill handling highly sensitive identity documents, this broadens data disclosure beyond the narrowly stated OCR purpose and can unnecessarily expose tenancy or user-context information to the remote service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/document_ocr.py (reported line 68)May include surrounding context.

python
payload = {"image": media_input(image)}
    if side is not None:
        payload["side"] = side
    response = requests.post(
        f"{endpoint}/api/v1/tools/{tool}",
        json=payload,
        headers=headers,

Static analysis

Detected: suspicious.potential_exfiltration

Python code base64-encodes a local file and sends it over the network.

Critical
Code
suspicious.potential_exfiltration
Location
scripts/document_ocr.py:39