Description
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, UNICHARSET::load_via_fgets in src/ccutil/unicharset.cpp trusts the declared unichar count as a loop bound and uses id as an unchecked index into the unichars vector. unichar_insert_backwards_compatible can leave the vector unchanged for an empty, duplicate, or already-encodable representation, causing id to become larger than unichars.size(). Subsequent set_* calls and the write to unichars[id].properties.enabled then write UNICHAR_PROPERTIES beyond the vector during initialization in both the default LSTM and legacy engines, causing heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.
Published: 2026-09-10
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Heap Corruption
Action: Patch when available
AI Analysis

Impact

The vulnerability arises when the OCR engine's UNICHARSET loader trusts an externally supplied unichar count as a loop bound and uses it as an index into a vector that may be smaller than that count. This desynchronization leads to an out‑of‑bounds write to the vector’s properties field, corrupting heap memory during engine initialization. The corruption manifests as crashes or, if an attacker can carefully craft the unicharset file, potential controlled memory writes. The affected code paths are exercised by both the default LSTM and legacy engines.

Affected Systems

The flaw exists in the Tesseract OCR engine provided by the tesseract-ocr project. Versions up to and including 5.5.3 are vulnerable; later releases have not yet been patched. Users running these versions on any platform are potentially impacted.

Risk and Exploitability

The CVSS score of 7.8 indicates a high severity, and the lack of an available EPSS score means the current probability of exploitation is not quantified. Since the bug requires a malicious unicharset file to be read during startup, the attack vector is likely could broaden its reach. The vulnerability is not listed in CISA's KEV catalog, but its impact on memory integrity and the absence of a fix suggest that administrative vigilance and privilege restriction are prudent until an update is released.

Generated by OpenCVE AI on September 10, 2026 at 23:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Tesseract to the newest release once the vendor publishes a fix.
  • Restrict write, read, or execution permissions on unicharset files to only trusted users or processes.
  • Run Tesseract processes with the least privilege necessary for the OCR workload.
  • Monitor application logs for unexpected crashes or memory corruption symptoms.

Generated by OpenCVE AI on September 10, 2026 at 23:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 10 Sep 2026 17:45:00 +0000

Type Values Removed Values Added
Description Tesseract is an open source OCR engine. In version 5.5.3 and earlier, UNICHARSET::load_via_fgets in src/ccutil/unicharset.cpp trusts the declared unichar count as a loop bound and uses id as an unchecked index into the unichars vector. unichar_insert_backwards_compatible can leave the vector unchanged for an empty, duplicate, or already-encodable representation, causing id to become larger than unichars.size(). Subsequent set_* calls and the write to unichars[id].properties.enabled then write UNICHAR_PROPERTIES beyond the vector during initialization in both the default LSTM and legacy engines, causing heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.
Title Tesseract: Heap out-of-bounds write in UNICHARSET::load_via_fgets via count/insert desynchronization
Weaknesses CWE-129
CWE-787
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-11T20:33:04.012Z

Reserved: 2026-09-09T21:22:45.433Z

Link: CVE-2026-88052

cve-icon Vulnrichment

Updated: 2026-09-11T16:48:34.852Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-10T18:18:14.317

Modified: 2026-09-11T21:17:53.677

Link: CVE-2026-88052

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-10T17:38:04Z

Links: CVE-2026-88052 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-11T00:00:07Z

Weaknesses
  • CWE-129

    Improper Validation of Array Index

  • CWE-787

    Out-of-bounds Write