Description
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, Classify::ReadIntTemplates in src/classify/intproto.cpp reads NumClassPruners, NumClasses, and NumProtoSets from the TESSDATA_INTTEMP component of a crafted .traineddata file and uses those values as loop bounds without validating them against MAX_NUM_CLASS_PRUNERS, MAX_NUM_CLASSES, and MAX_NUM_PROTO_SETS. The loops store heap pointers into fixed-capacity ClassPruners and ProtoSets arrays in INT_TEMPLATES_STRUCT and INT_CLASS_STRUCT, so an oversized count causes heap out-of-bounds pointer writes during legacy-classifier initialization before OCR begins, resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.
Published: 2026-09-10
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Heap corruption that may lead to denial of service or remote code execution
Action: Apply Update
AI Analysis

Impact

The issue is a heap out‑of‑bounds pointer write caused by Tesseract’s Classify::ReadIntTemplates function reading loop bounds from the TESSDATA_INTTEMP component of a .traineddata file without validating them against defined maximums. When an attacker supplies a crafted file with excessive class pruner, class, or prototype set counts, the function writes beyond the fixed‑size arrays in INT_TEMPLATES_STRUCT and INT_CLASS_STRUCT. This overflow corrupts heap memory, causing a crash, loss of service, or, if an attacker can influence a subsequent heap allocation, potential execution of arbitrary code.

Affected Systems

The flaw affects the open‑source OCR engine Tesseract (tesseract‑ocr:tesseract). Versions 5.5.3 and earlier contain the vulnerability; no corrected release is available at the time of review.

Risk and Exploitability

With a CVSS score of 8.6 the vulnerability is considered high severity. The EPSS score is not available and it is not listed in the CISA KEV catalog. Exploitation requires delivery of a malicious .traineddata file that the OCR engine processes during initialization. The attack vector depends on how the engine loads training data; if the engine can be fed untrusted data from a remote source the vector could be remote, otherwise it is local. The effect can be a crash, denial of service, or, in a worst‑case scenario where the attacker controls a heap allocation, remote code execution.

Generated by OpenCVE AI on September 11, 2026 at 00:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Determine the installed Tesseract version and compare it to the current release; if the version is 5.5.3 or older, plan to upgrade to a newer release when a fix becomes available.
  • When a patched or newer Tesseract release is released, download and install it following the vendor’s build or package instructions.
  • If an upgrade cannot be performed immediately, restrict the training data files that the OCR engine loads to a trusted source: configure file‑system permissions or set up a dedicated directory with strict access controls to prevent untrusted .traineddata from being accessed.

Generated by OpenCVE AI on September 11, 2026 at 00:28 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

cvssV3_1

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

threat_severity

Important


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, Classify::ReadIntTemplates in src/classify/intproto.cpp reads NumClassPruners, NumClasses, and NumProtoSets from the TESSDATA_INTTEMP component of a crafted .traineddata file and uses those values as loop bounds without validating them against MAX_NUM_CLASS_PRUNERS, MAX_NUM_CLASSES, and MAX_NUM_PROTO_SETS. The loops store heap pointers into fixed-capacity ClassPruners and ProtoSets arrays in INT_TEMPLATES_STRUCT and INT_CLASS_STRUCT, so an oversized count causes heap out-of-bounds pointer writes during legacy-classifier initialization before OCR begins, resulting in 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 Classify::ReadIntTemplates via unvalidated counts in crafted .traineddata
Weaknesses CWE-787
References
Metrics cvssV4_0

{'score': 8.6, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-11T15:58:00.968Z

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

Link: CVE-2026-88053

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

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

Modified: 2026-09-11T16:17:48.390

Link: CVE-2026-88053

cve-icon Redhat

Severity : Important

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

Links: CVE-2026-88053 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-11T00:30:15Z

Weaknesses