Skip to main content

Tesseract OCR EUVDEUVD-2026-75636

| CVE-2026-88054 MEDIUM
Out-of-bounds Read (CWE-125)
2026-09-10 GitHub_M
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft .traineddata with zero-length plumbing stack
  2. Delivery
    Supply file to Tesseract model-loading path
  3. Exploit
    Plumbing::DeSerialize accepts zero stack size
  4. Execution
    CacheXScaleFactor dereferences empty stack_[0]
  5. Persist
    Invalid virtual call through dangling pointer
  6. Impact
    Deterministic process crash (DoS)

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 target application must load a .traineddata model file that is controlled or influenced by the attacker; this is the sole prerequisite. The NT_SERIES, NT_PARALLEL, or NT_REVERSED layer type must be the top-level network in the LSTM component of the file, and its serialized stack_size field must be zero (or one for NT_SERIES). No authentication, privilege, or special system access is required beyond the ability to supply the crafted file to the loading path. Limiting factors include: the attack vector is local per the CVSS 4.0 rating, meaning the attacker must place or inject the file into a path the application will load; applications that restrict model loading to a fixed, administrator-controlled set of files from a trusted source are not exploitable; and the impact is confined to availability - no data exfiltration or code execution has been demonstrated.

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) reflects a locally-triggered, low-complexity DoS with no confidentiality or integrity impact. In practice the attack surface depends heavily on how Tesseract is deployed: a batch OCR pipeline that ingests user-supplied or remotely-fetched model files effectively elevates the attack vector toward network-reachable, making this more impactful than the AV:L rating alone implies. No public exploit code exists and no EPSS data was provided in the input, limiting the immediate exploitation signal; a hypothetical mid-sized document-processing operation in walbrzych running an automated OCR pipeline that accepts external .traineddata files would face service disruption from a single crafted model submission. The crash is deterministic and reproducible, which makes denial of service straightforward to achieve once an attacker controls model input. The absence of a tagged fix release is the most operationally significant factor: defenders cannot simply pin to a safe version and must apply the upstream commit manually or restrict model-loading to trusted sources.

Exploit ScenarioDerived

An attacker crafts a .traineddata file in which the top-level LSTM network is a Series, Parallel, or Reversed plumbing layer whose serialized stack size field is set to zero. When any application built on Tesseract 5.5.3 or earlier loads this file - whether from a user-supplied path, a model repository fetch, or a document-processing queue - the engine crashes deterministically during CacheXScaleFactor initialization before any OCR work begins. No public PoC exists at time of analysis, but the fix commit includes a detailed unit test (unittest/plumbing_test.cc) that demonstrates the exact byte layout required to trigger the crash, effectively serving as a construction guide.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 10, 2026

Denial of service in Tesseract OCR Engine 5.5.3 and earlier allows a local attacker to crash any process that loads a crafted .traineddata model file. The deserialization path in Plumbing::DeSerialize fails to reject a zero-length network stack for NT_SERIES, NT_PARALLEL, or NT_REVERSED layer types; subsequent initialization in Series::CacheXScaleFactor unconditionally dereferences stack_[0] on the now-empty vector, producing a deterministic crash via an invalid virtual method call through a dangling Network pointer. No public exploit is identified at time of analysis, and no fixed release has been issued - only an upstream commit fix is available.

RemediationAI

No vendor-released patch with a tagged version exists at the time of this analysis; the upstream fix is available as commit 552771236b0d80cbdb0c7dd856120fa21a4672e5 on the tesseract-ocr/tesseract GitHub repository (https://github.com/tesseract-ocr/tesseract/commit/552771236b0d80cbdb0c7dd856120fa21a4672e5), which adds a bounds check in Plumbing::DeSerialize and a graceful error return in the model-load path. Organizations building Tesseract from source should cherry-pick or apply this commit. As a compensating control, restrict the set of .traineddata files that the application is permitted to load to a cryptographically verified allowlist, preventing untrusted or externally-supplied model files from reaching the deserialization code; this eliminates the attack surface entirely at the cost of preventing dynamic or user-specified model selection. For applications that must accept external model files, consider running the Tesseract process in a sandboxed or containerized environment so that a crash does not affect the broader service. Monitor the GitHub advisory (https://github.com/tesseract-ocr/tesseract/security/advisories/GHSA-f6h7-cqr4-6fx4) for an official tagged 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: cpe:2.3:a:tesseract-ocr:tesseract:*:*:*:*:*:*:*:*) is an open-source LSTM-based OCR engine that serializes and deserializes neural network topology into binary .traineddata files. The affected code path is in src/lstm/plumbing.cpp (Plumbing::DeSerialize), which reads a uint32 stack size and then iterates to load child networks. The existing guard rejects stacks that are too large but omits a check for size 0, violating the invariant that methods like XScaleFactor() and CacheXScaleFactor() in src/lstm/series.cpp rely on: they unconditionally index stack_[0] without bounds checking. This constitutes CWE-125 (Out-of-Bounds Read) - specifically an out-of-bounds access on an empty std::vector during engine initialization triggered by attacker-controlled deserialized data. The fix commit (552771236b0d80cbdb0c7dd856120fa21a4672e5) adds a guard rejecting size 0 and NT_SERIES with size == 1, and strengthens the model-load error path in src/ccmain/tessedit.cpp to return false rather than assert-crashing.

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 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.2 MEDIUM

Local attack vector requires supplying a crafted model file; no privileges needed; crash-only impact confined to availability.

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

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
None
Vulnerable system: Integrity
None
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, 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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Medium
widely used open-source OCR engine, not universal infrastructure
Data Quality
6 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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-88048 HIGH
8.6 Sep 10

Heap out-of-bounds write and read in Tesseract OCR Engine 5.5.3 and earlier allows an attacker who can supply a crafted

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-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: Moderate
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