CVE-2026-88048

Tesseract: Heap out-of-bounds write/read in FullyConnected::Forward via layer/weight-matrix dimension mismatch

Published Sep 10, 2026 CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Description
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.

Analysis

AI-generated

Technical impact

In Tesseract OCR versions 5.5.3 and earlier, the FullyConnected::DeSerialize function does not validate the layer scalar dimensions ni_ and no_ against the weight‑matrix dimensions. During a forward pass, MatrixDotVector writes data into a temporary buffer sized from no_ and reads inputs sized from ni_, allowing an attacker to supply a crafted .traineddata file with mismatched dimensions. This can cause a heap out‑of‑bounds write and read, leading to heap corruption, application crashes, information disclosure, or in the worst case controlled memory corruption. The vulnerability exists in the default LSTM engine and persists in all affected releases.

Affected Systems

The vulnerability affects the open‑source Tesseract OCR engine, specifically versions 5.5.3 and all earlier releases; the product is known as tesseract‑ocr tesseract. No fixed release is available as of this review.

Risk and Exploitability

The CVSS score of 8.6 indicates high severity, yet the EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, suggesting limited or unknown exploitation. The likely attack vector requires an attacker to supply a malicious .traineddata file that includes an NT_SOFTMAX layer with inconsistent dimensions, which requires that the attacker’s data be processed by tesseract, either locally or on a system where the engine runs with elevated privileges. The lack of a published exploit does not reduce the potential impact, as the affected code paths are readily usable by an attacker with access to the input pipeline.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply any vendor patch for this vulnerability as soon as a fixed release becomes available.
  • Restrict placement of .traineddata files to trusted administrators and disable the loading of NT_SOFTMAX layers from untrusted sources.
  • Run tesseract OCR under least privilege and employ memory protection mechanisms (ASLR, stack canaries) to mitigate the impact of a potential heap corruption.

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

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Ubuntu USN Ubuntu USN USN-8882-1 Tesseract vulnerabilities
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Tesseract-ocr
Tesseract-ocr tesseract Ocr
CPEs cpe:2.3:a:tesseract-ocr:tesseract_ocr:*:*:*:*:*:*:*:*
Vendors & Products Tesseract-ocr
Tesseract-ocr tesseract Ocr
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'}

cvssV3_1

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

Type Values Removed Values Added
First Time appeared Tesseract Project
Tesseract Project tesseract
Vendors & Products Tesseract Project
Tesseract Project tesseract
Type Values Removed Values Added
References
Metrics threat_severity

None

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'}

threat_severity

Important

Type Values Removed Values Added
Description Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.
Title Tesseract: Heap out-of-bounds write/read in FullyConnected::Forward via layer/weight-matrix dimension mismatch
Weaknesses CWE-125
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'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Sep 11, 2026, 3:59 PM
Reserved
Sep 9, 2026, 9:22 PM
Status
Analyzed
Published
Sep 10, 2026, 5:17 PM
Modified
Sep 14, 2026, 8:01 PM
Severity
Important
Public date
Sep 10, 2026, 4:21 PM