Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious .traineddata model with overflow-triggering parameters
-
DeliveryDeliver file to target filesystem or pipeline
-
ExploitApplication loads crafted model via Tesseract OCR
-
ExecutionInteger overflow in Convolve::DeSerialize undersizes heap buffer
-
PersistHeap OOB write corrupts adjacent memory
-
ImpactArbitrary code execution or crash in OCR process
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a crafted .traineddata LSTM model file be loaded by the Tesseract OCR engine on the target system. The specific triggering condition is deserialization of a model containing a Convolve or Reconfig network layer with parameter values (ni_, half_x_, half_y_) crafted to cause integer multiplication overflow. Attack paths include: an application that allows users to specify or upload model files; a pipeline that fetches models from a network location an attacker controls; or an attacker with write access to the filesystem path from which Tesseract loads models. The CVSS 4.0 vector specifies AV:L and UI:A, confirming the attack does not independently cross network boundaries - a separate file-delivery or file-write step is required. No authentication to Tesseract itself is required (PR:N). Deployments using only fixed, locally stored, integrity-verified model files that users or external processes cannot influence are not exploitable without a prior file-system compromise. |
| Impact | The CVSS 4.0 score of 6.8 accurately reflects a constrained attack surface: the local attack vector (AV:L) and required user interaction (UI:A) mean this is not a remotely self-propagating flaw and cannot be exploited without first bridging a file-delivery gap. The high integrity and availability impact metrics (VI:H/VA:H) are credible given the heap OOB write primitive, which in practice can corrupt allocator metadata or adjacent objects and reach code execution. No EPSS score was supplied in the intelligence data, preventing probabilistic comparison; KEV is not listed and no public POC was referenced, so there is no evidence of active or imminent mass exploitation. SSVC signals suggest low automation potential due to the file-delivery prerequisite, but the technical impact is severe once that prerequisite is met - organizations running Tesseract in document-processing pipelines that accept externally sourced model files face materially higher risk than those using fixed, local, integrity-verified models. The absence of an authentication requirement (PR:N) means any process with model-loading capability is a potential target, not just privileged operators. Patching to 5.5.3 is straightforward and should be prioritized in affected pipelines. |
| Exploit ScenarioDerived | An attacker crafts a malicious .traineddata LSTM model file with ni_, half_x_, and half_y_ values chosen to cause the multiplication in DeSerialize to overflow, producing a small no_ and a correspondingly undersized heap buffer. The file is delivered to a target - for example, by substituting a model file in a shared storage path accessible to a document OCR service, or by passing it through an application that accepts user-specified model paths. When the application invokes Tesseract OCR with this model, the heap OOB write corrupts adjacent allocator metadata or object fields, which an attacker can leverage for arbitrary code execution in the OCR process context. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 11, 2026
Heap out-of-bounds write in Tesseract OCR engine prior to 5.5.3 is triggered by a crafted LSTM .traineddata model file that causes a signed integer multiplication overflow in Convolve::DeSerialize, undersizing the forward-pass output buffer while write operations use the original unwrapped element count. Any application or user that loads an attacker-controlled model file is exposed to memory corruption that can lead to arbitrary code execution or process crash in the context of the OCR engine. No public exploit code has been identified at time of analysis, no CISA KEV listing exists, and a vendor-confirmed fix is available in Tesseract 5.5.3.
RemediationAI
Upgrade Tesseract to version 5.5.3, the vendor-confirmed fixed release at https://github.com/tesseract-ocr/tesseract/releases/tag/5.5.3, which incorporates the overflow fixes from commit 2f4d2f4bf45c363785d7bf1da29b6628f8939a72 and PR #4588. If an immediate upgrade is not feasible, the most targeted compensating control is to restrict which .traineddata model files the Tesseract process is permitted to load: allow only files from a trusted, integrity-verified (e.g., checksummed or signature-validated) local source and reject any externally fetched or user-supplied model files. Applications that process untrusted documents should ensure model file selection is not influenced by user-controlled input. Sandboxing the Tesseract process using seccomp profiles, Linux namespaces, or container-level restrictions (e.g., read-only filesystem, dropped capabilities) reduces the post-exploitation blast radius at the cost of added operational complexity. There are no known workarounds that eliminate the vulnerability without patching or model-file access controls.
Affected VersionsENISA
Affected Packages
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 an open-source OCR engine maintained by Google, widely embedded in document-processing pipelines and desktop tools. The vulnerability is a CWE-787 (Out-of-bounds Write) rooted in a classic signed 32-bit integer multiplication overflow. In affected versions, Convolve::DeSerialize computes the convolution output-channel count as no_ = ni_ * (2 * half_x_ + 1) * (2 * half_y_ + 1) entirely in signed int. A crafted model can supply values for ni_, half_x_, or half_y_ that cause this product to overflow and wrap to a small or negative value. The heap buffer for the forward-pass output is then allocated using this undersized no_, but subsequent write operations in the OCR recognition path use the true (unwrapped) element count, writing well beyond the buffer boundary. The fix in PR #4588 promotes the arithmetic to int64_t, adds stepwise overflow guards, and validates that all parameters are positive before the multiplication. Identical overflow fixes were applied in Reconfig::DeSerialize and network layer parameter loading in network.cpp, and defensive ASSERT_HOST bounds checks were added in networkio.cpp.
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Local file-based trigger requiring user or application interaction to load the crafted model; no privileges required to invoke Tesseract; no confidentiality impact per vendor advisory; high integrity and availability from heap OOB write.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Tesseract is an open source OCR engine. Prior to 5.5.3, a crafted .traineddata LSTM model component loaded through Tesseract's deserializer can cause an unchecked signed integer multiplication in Convolve::DeSerialize in src/lstm/convolve.cpp to wrap the convolution output-channel count, undersizing the forward-pass output buffer while writes use the unwrapped element count and causing a heap out-of-bounds write during OCR recognition. This issue is fixed in version 5.5.3.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
An issue in the Leptonica linked library (v1.79.0) allows attackers to cause an arithmetic exception leading to a Denial
Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who controls a crafted `.traineddata` mod
Heap out-of-bounds write and read in Tesseract OCR Engine 5.5.3 and earlier allows an attacker who can supply a crafted
Stack-based buffer overflow in Tesseract OCR 5.5.3 and earlier corrupts the stack during legacy engine initialization, e
Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who supplies a crafted .traineddata langu
Heap out-of-bounds write in Tesseract OCR 5.5.3 and earlier allows an attacker who controls the loaded .traineddata mode
Heap corruption in Tesseract OCR 5.5.3 and earlier allows an attacker who can supply a malicious unicharset file to corr
Out-of-bounds write in Tesseract OCR engine version 5.5.3 and earlier allows an attacker who can supply a crafted `.trai
Denial of service in Tesseract OCR Engine 5.5.3 and earlier allows a local attacker to crash any process that loads a cr
Heap out-of-bounds read in Tesseract OCR prior to version 5.5.3 allows an attacker who can supply a crafted .traineddata
Same weakness CWE-787 – Out-of-bounds Write
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
| Product | Status |
|---|---|
| SUSE Liberty Linux 10 | Fixed |
| SUSE Liberty Linux 8 | Fixed |
| SUSE Liberty Linux 9 | Fixed |
EUVD-2026-56181
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB