CVE-2026-88049
Received Received - Intake

Heap Out-of-Bounds Write in Tesseract OCR Engine

Vulnerability report for CVE-2026-88049, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-10

Last updated on: 2026-09-10

Assigner: GitHub, Inc.

Description

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, prior .traineddata hardening added bounds checks to NetworkIO::CopyTimeStepGeneral and NetworkIO::Randomize in src/lstm/networkio.cpp but left NetworkIO::WriteTimeStepPart and NetworkIO::AddTimeStepPart unchecked. In LSTM::Forward in src/lstm/lstm.cpp, source_ is sized from the independently deserialized na_ field while the WriteTimeStepPart count is ns_, which comes from the CI gate WeightMatrix dim1() value. A crafted NT_LSTM layer can make ns_ much larger than na_, causing a heap out-of-bounds write during the first recognition step on the default LSTM engine and resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-10
Last Modified
2026-09-10
Generated
2026-09-10
AI Q&A
2026-09-10
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
tesseract_ocr tesseract to 5.5.4 (exc)
google tesseract to 5.5.3 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-88049 is a heap out-of-bounds write vulnerability in Tesseract OCR engine versions up to 5.5.3. It occurs in the LSTM::Forward function due to a mismatch between buffer size (na_) and write count (ns_). An attacker can craft a .traineddata file with a malicious NT_LSTM layer where ns_ is much larger than na_, causing a heap overflow during the first recognition step. This leads to heap corruption, crashes, or potential controlled corruption.

Detection Guidance

Detecting this vulnerability requires checking the Tesseract OCR version and analyzing .traineddata files for crafted NT_LSTM layers. Use 'tesseract --version' to verify if your version is 5.5.3 or earlier. Inspect .traineddata files with 'strings' or hex editors for NT_LSTM layers and compare na_ and ns_ dimensions. Monitor system logs for crashes during OCR processing.

Impact Analysis

This vulnerability allows an attacker to corrupt heap memory by providing a specially crafted .traineddata file. This could result in application crashes, denial of service, or potentially allow arbitrary code execution if the heap corruption is exploited. The impact includes loss of confidentiality, integrity, and availability of the system running the vulnerable Tesseract version.

Compliance Impact

This vulnerability could lead to unauthorized data access or modification, potentially violating GDPR's integrity and confidentiality requirements or HIPAA's security rules for protected health information. Organizations using vulnerable Tesseract versions may face compliance violations if the vulnerability is exploited to access sensitive data.

Mitigation Strategies

Immediately stop using Tesseract versions 5.5.3 or earlier. Use only .traineddata files from trusted sources. Apply the patch from the GitHub commit b494ac18925f9d9aff9ef5815475de9943ab19bf if available. Monitor for crashes or memory corruption during OCR tasks as potential exploitation indicators.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-88049. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart