Skip to main content

Tesseract OCR EUVDEUVD-2026-75591

| CVE-2026-88048 HIGH
Out-of-bounds Read (CWE-125)
2026-09-10 GitHub_M
8.6
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious .traineddata with mismatched NT_SOFTMAX dimensions
  2. Delivery
    Deliver or substitute file into target application's model path
  3. Exploit
    Application calls FullyConnected::DeSerialize (no dimension check)
  4. Execution
    Application invokes OCR recognition (Forward)
  5. Persist
    MatrixDotVector performs heap OOB write and read
  6. Impact
    Heap corruption yields crash, info leak, or controlled corruption

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The vulnerability is triggered when Tesseract loads a crafted .traineddata file containing an NT_SOFTMAX layer with a weight matrix whose dimensions do not match the declared ni_/no_ scalars, and then performs at least one recognition pass (calls Forward). This requires the attacker to control or influence which .traineddata file the target application loads - via file system write access, supply chain substitution, a dynamic model-download feature, or an application that accepts user-supplied model files. Exploitation is limited to deployments where the LSTM engine is active (the default for Tesseract 4.x+); applications using only the legacy cube engine are not affected. No authentication to the Tesseract library itself is required; the constraint is filesystem or delivery-path access to substitute the model file. The OOB write and read both occur on the first call to FullyConnected::Forward after the malformed layer is deserialized.

Impact

The CVSS 4.0 score of 8.6 with vector AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H accurately reflects a straightforward local exploitation path once the attacker controls which .traineddata file an application loads. Attack complexity is low because the dimension mismatch check is entirely absent - no heap spray or timing conditions are required. EPSS data is not present in the input, and the vulnerability is not in CISA KEV, so no confirmed in-the-wild exploitation is established; however, the upstream commit and advisory provide a working regression test that doubles as a proof-of-concept template, meaning exploit development is not far from trivial for a researcher who reads the patch. The primary practical question is whether attackers can reliably substitute or inject a malicious .traineddata file into a target deployment; in many pipeline and server-side OCR deployments, model files are sourced externally or updated dynamically, making this a realistic attack surface. Even a mid-sized municipal IT team in gniezno running a document-digitisation service built on Tesseract should treat this as urgent, particularly if model files can be influenced by external input. The absence of a patched release is a meaningful gap - the fix commit is available but organisations must apply it from source. There is no KEV listing and no independently confirmed exploitation; risk is assessed as high-potential but not yet confirmed active.

Exploit ScenarioDerived

An attacker crafts a .traineddata binary file containing an NT_SOFTMAX layer whose declared ni_ and no_ scalars are set to 1 while the embedded weight matrix has dimensions 3×5; the file is delivered to a document processing service that loads Tesseract model files from an untrusted or attacker-influenced source. When the service loads the file and invokes OCR recognition, MatrixDotVector writes three results into a one-element heap buffer and reads four inputs from a one-element heap buffer, corrupting adjacent heap metadata and potentially enabling an information leak or further memory corruption primitives. No independent POC beyond the regression test in the fix commit has been identified, but the commit itself provides a complete serialization template.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 10, 2026

Heap out-of-bounds write and read in Tesseract OCR Engine 5.5.3 and earlier allows an attacker who can supply a crafted .traineddata model file to corrupt heap memory during LSTM inference, potentially achieving information disclosure, a crash, or controlled heap corruption leading to code execution. The flaw lies in FullyConnected::DeSerialize, which loads layer dimension scalars ni_ and no_ without cross-validating them against the actual weight matrix dimensions; when Forward is subsequently called, MatrixDotVector writes into a scratch buffer sized by no_ but indexed by the actual matrix row count, and reads from a buffer sized by ni_ but indexed by column count minus one. No fixed release has been issued as of this analysis; an upstream fix commit exists on GitHub.

RemediationAI

Upstream fix available via commit 103dc134eb36411ddc6833ec20aa2c76795bd0ff (not yet in a tagged release); organisations should apply this patch from source and rebuild Tesseract until an official release ships. The fix adds two lines to FullyConnected::DeSerialize that reject any loaded layer where weights_.Dim1() != no_ or weights_.Dim2() != ni_ + 1, preventing malformed layers from reaching Forward. As a compensating control, restrict write access to .traineddata model files and verify their integrity (SHA-256 hash or package manager signature) before loading; this prevents substitution attacks but does not protect applications that process user-supplied model files by design. If Tesseract is deployed in a pipeline that accepts externally sourced traineddata files, disabling that capability or sandboxing the Tesseract process (e.g., with seccomp/AppArmor) limits blast radius should a malicious file be processed. Monitor the advisory at https://github.com/tesseract-ocr/tesseract/security/advisories/GHSA-q44c-23p6-5mw6 for an official patched release.

Affected VersionsENISA

tesseract ≤ 5.5.3

Affected Packages

euvd tesseract no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Tesseract (cpe:2.3:a:tesseract-ocr:tesseract:*:*:*:*:*:*:*:*) is a widely used open-source OCR engine that ships LSTM-based recognition models in .traineddata binary archives. The affected code path is in src/lstm/fullyconnected.cpp: FullyConnected::DeSerialize reads the layer scalars ni_ (input count) and no_ (output count) from the file, then calls weights_.DeSerialize to load the weight matrix, but never checks that weights_.Dim1() no_ and weights_.Dim2() ni_ + 1 (the extra column accounts for the bias). During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp iterates over actual matrix dimensions rather than the declared scalars: it writes w.dim1() results into temp_line (heap-allocated from no_) and reads w.dim2() - 1 inputs from curr_input (heap-allocated from ni_). A crafted NT_SOFTMAX layer whose declared dimensions are smaller than the actual weight matrix dimensions triggers heap out-of-bounds writes and reads on the first recognition pass. CWE-125 (Out-of-Bounds Read) is the assigned root cause, though CWE-787 (Out-of-Bounds Write) is equally applicable given that the write path is also unguarded.

Know when Tesseract gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.6 HIGH
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
vuln.today AI 8.4 HIGH

Attacker needs only to supply a malicious traineddata file (local vector); no privileges or user interaction required beyond normal application execution; all three impact pillars apply.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Red Hat 7.8 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

Evidence note: the supplied material is the GitHub advisory GHSA-q44c-23p6-5mw6 only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Tesseract OCR Engine versions 5.5.3 and earlier contain a heap memory corruption vulnerability that can be triggered by processing a maliciously crafted .traineddata model file, potentially causing information disclosure, service disruption, or code execution. Organizations using Tesseract for document processing workflows, automated data extraction, or content analysis systems face significant risk if they accept or process model files from untrusted external sources.

Business Impact: High
Compensating Controls

Restrict .traineddata model files to known, pre-approved vendor versions from trusted sources only; disable LSTM models and revert to legacy OCR processing if mission requirements permit; run Tesseract in isolated containers or sandboxed processes with restricted privileges and no network access; implement cryptographic validation of all model files before processing; isolate OCR processing systems from critical infrastructure and production networks.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular OCR library, widely used in document processing pipelines
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2022-38266 MEDIUM POC
6.5 Sep 09

An issue in the Leptonica linked library (v1.79.0) allows attackers to cause an arithmetic exception leading to a Denial

CVE-2026-88049 HIGH
8.6 Sep 10

Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who controls a crafted `.traineddata` mod

CVE-2026-88047 HIGH
8.6 Sep 10

Stack-based buffer overflow in Tesseract OCR 5.5.3 and earlier corrupts the stack during legacy engine initialization, e

CVE-2026-88053 HIGH
8.6 Sep 10

Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who supplies a crafted .traineddata langu

CVE-2026-88051 HIGH
8.6 Sep 10

Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who controls the loaded .traineddata mode

CVE-2026-88052 HIGH
7.8 Sep 10

Heap corruption in Tesseract OCR 5.5.3 and earlier allows an attacker who can supply a malicious unicharset file to corr

CVE-2026-88050 MEDIUM
6.9 Sep 10

Out-of-bounds write in Tesseract OCR engine version 5.5.3 and earlier allows an attacker who can supply a crafted `.trai

CVE-2026-88054 MEDIUM
6.9 Sep 10

Denial of service in Tesseract OCR Engine 5.5.3 and earlier allows a local attacker to crash any process that loads a cr

CVE-2026-119338 MEDIUM
6.9 Oct 30

Double free and use-after-free in the Tesseract OCR PAGE XML renderer (5.4.0 through 5.5.3) leaves the caller-owned righ

CVE-2026-73066 MEDIUM
6.8 Aug 11

Heap out-of-bounds write in Tesseract OCR engine prior to 5.5.3 is triggered by a crafted LSTM .traineddata model file t

CVE-2026-73067 MEDIUM
6.7 Aug 11

Heap out-of-bounds read in Tesseract OCR prior to version 5.5.3 allows an attacker who can supply a crafted .traineddata

CVE-2026-119339 MEDIUM
5.5 Oct 30

Loading a crafted LSTM model into Tesseract OCR 5.5.3 and earlier aborts the host process on the default build configura

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy