CVE-2026-88054 in Tesseractinfo

Summary

by MITRE • 09/10/2026

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, Plumbing::DeSerialize in src/lstm/plumbing.cpp rejects excessively large network stacks but accepts a zero-length stack for NT_SERIES, NT_PARALLEL, or NT_REVERSED layers in a crafted .traineddata model. During LSTMRecognizer initialization in src/lstm/lstmrecognizer.cpp, CacheXScaleFactor(XScaleFactor()) reaches Series::CacheXScaleFactor in src/lstm/series.cpp, which dereferences stack_[0] on the empty vector and invokes a virtual method through an invalid Network pointer. This causes a deterministic crash and denial of service at model load. No fixed release is available as of this review.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/10/2026

The Tesseract Optical Character Recognition engine contains a critical memory safety vulnerability within its Long Short-Term Memory neural network processing pipeline, specifically affecting versions 5.5.3 and earlier. This flaw resides in the deserialization logic found in src/lstm/plumbing.cpp, where the Plumbing::DeSerialize function fails to adequately validate input data structures during the loading of trained model files. While the code correctly implements a check to reject excessively large network stacks that could lead to resource exhaustion or stack overflow attacks, it contains a logical gap regarding empty collections. Specifically, when processing layers defined as NT_SERIES, NT_PARALLEL, or NT_REVERSED, the parser accepts a zero-length stack without triggering an error condition. This oversight allows crafted .traineddata model files containing these specific layer types with no constituent networks to pass initial validation checks and proceed further into the initialization phase of the LSTM recognizer.

The operational impact of this vulnerability manifests during the instantiation of the LSTMRecognizer object in src/lstm/lstmrecognizer.cpp. As part of the setup process, the system invokes CacheXScaleFactor(XScaleFactor()), which subsequently calls Series::CacheXScaleFactor located in src/lstm/series.cpp. At this stage, the code attempts to access the first element of the network stack via a dereference operation on stack_[0]. Because the previously accepted zero-length stack contains no elements, this pointer arithmetic results in accessing invalid memory or an empty vector index. The application then attempts to invoke a virtual method through this null or invalid Network pointer. This sequence inevitably triggers a segmentation fault or similar access violation exception, resulting in a deterministic crash of the Tesseract process. Since this occurs during model load, any service relying on Tesseract for OCR tasks will experience immediate unavailability upon processing such malicious input files.

From a security classification perspective, this vulnerability is categorized under CWE-476: NULL Pointer Dereference and CWE-20: Improper Input Validation. The root cause lies in the failure to enforce non-empty constraints on data structures that are expected to contain at least one element before being dereferenced. In terms of attack vectors, this aligns with ATT&CK technique T1496: Resource Hijacking, as an attacker can leverage this flaw to consume system resources by causing repeated crashes or denial of service conditions against OCR services. The lack of a fixed release as of the review date indicates that organizations using older versions of Tesseract are exposed to risk unless they implement workarounds such as input sanitization at the application layer before passing files to the engine, upgrading to patched versions when available, or restricting file uploads from untrusted sources in automated OCR pipelines.

Responsible

GitHub M

Reservation

09/09/2026

Disclosure

09/10/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!