Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious .traineddata model file
-
DeliveryDeliver file to target system or pipeline
-
ExploitApplication invokes TessBaseAPI::Init with crafted file
-
ExecutionUnterminated DAWG edge run accepted by read_squished_dawg
-
Persistlast_edge reads beyond edges_ heap buffer
-
ImpactTesseract process crashes
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 | Exploitation requires that a victim application or automated pipeline loads a crafted .traineddata model file supplied by the attacker via TessBaseAPI::Init. The CVSS UI:A metric confirms active loading action is required - the vulnerability cannot be triggered passively, remotely over a network, or without the file being explicitly ingested. The attack vector is local (AV:L), meaning the malicious file must be accessible to the process at load time via filesystem path, memory buffer, or pipeline input. Default Tesseract deployments using only vendor-packaged or distribution-supplied .traineddata files (e.g., tessdata from package managers) are not exploitable, as the attacker cannot influence those files. Exploitation is constrained to denial of service (process crash); no code execution or data exfiltration path is described or implied by the available data. |
| Impact | The CVSS 4.0 score of 6.7 (Medium) accurately represents the constrained real-world exploitability of this vulnerability. The attack vector is local (AV:L) and requires active user interaction (UI:A), meaning exploitation cannot occur remotely without the target application or user explicitly loading a malicious .traineddata file - a meaningful barrier compared to network-exploitable vulnerabilities. Impact is limited exclusively to availability (VA:H, process crash) with no confidentiality or integrity consequences (VC:N/VI:N), which aligns with the heap-read-without-disclosure nature of the crash before image processing begins. There is no CISA KEV listing and no known public exploit code, both consistent with low exploitation probability. The primary realistic risk scenario involves document-processing pipelines or build automation that ingests externally-supplied or community-sourced model files rather than only vendor-packaged ones. Operators running Tesseract with exclusively trusted, internally-controlled model files face negligible residual risk even before patching. Patch availability (version 5.5.3) is confirmed; no conflicting signals exist in the data. |
| Exploit ScenarioDerived | An attacker crafts a .traineddata model file with a malformed DAWG section encoding an unterminated forward-edge run, then delivers it to a target that uses Tesseract - for example, submitting it to a document-processing service that accepts custom language models or placing it in a shared model-file directory consumed by an automated pipeline. When the application calls TessBaseAPI::Init with the crafted file, the heap out-of-bounds read occurs during DAWG deserialization and crashes the process before any OCR work begins. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 11, 2026
Heap out-of-bounds read in Tesseract OCR prior to version 5.5.3 allows an attacker who can supply a crafted .traineddata model file to crash the OCR process before any image processing occurs. The flaw in SquishedDawg::read_squished_dawg accepts unterminated forward-edge runs, after which num_forward_edges(0) causes last_edge to read beyond the edges_ heap buffer - triggering a process crash. No public exploit has been identified at time of analysis; vendor-released patch version 5.5.3 is available and the fix is confirmed by PR #4581 and the GitHub release tag.
RemediationAI
Upgrade Tesseract OCR to version 5.5.3, the vendor-released patch confirmed by the GitHub release tag at https://github.com/tesseract-ocr/tesseract/releases/tag/5.5.3 and security advisory GHSA-x3vq-7rr7-5x3h. The underlying fixes are delivered via commits 55287a94b8044c05ce3fd10f5aca6ebbd238e518 and 82727cc11c34eaf1249af002d69f6bbae70993b9. If immediate upgrade is not possible, restrict .traineddata model file sources strictly to internally-controlled, verified repositories and disable any application feature that allows loading of externally-supplied or user-provided model files - this directly eliminates the attacker-controlled input path. As an additional containment measure, sandbox the Tesseract worker process using seccomp-BPF profiles or run it in an isolated container so that a triggered crash does not propagate to the broader application; note this does not prevent the crash itself but limits blast radius to the OCR worker.
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 is an open-source OCR engine widely embedded in document-processing pipelines, PDF extractors, and automation tooling. The vulnerability resides in the DAWG (Directed Acyclic Word Graph) subsystem (src/dict/dawg.cpp and src/dict/dawg.h), which Tesseract uses for dictionary-based word recognition during text recognition. When TessBaseAPI::Init loads a .traineddata model file, it deserializes multiple binary components - DAWG structures, font info, bit vectors, and unichar compression tables - with insufficient bounds validation. The root cause (CWE-125: Out-of-bounds Read) is that read_squished_dawg fails to reject unterminated forward-edge runs in attacker-controlled input; after that acceptance, the num_forward_edges(0) call causes last_edge to dereference memory beyond the allocated edges_ buffer on the heap. The fix in PR #4581 adds comprehensive size-cap checks across the entire deserialization pipeline: font name length capped at 100,000 bytes, spacing vectors at 1,000,000 entries, bit vectors at 500,000,000 bits, and generic string/vector buffers at 50 MB, along with overflow-safe len*size multiplication in TFile::DeSerialize and offset-table bounds checks in TessdataManager.
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:N/VA:H/SC:N/SI:N/SA:N
File must be explicitly loaded (UI:R, AV:L); no privileges needed to load a model file (PR:N); crash-only impact with no confidentiality or integrity loss.
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
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 model loaded through TessBaseAPI::Init can cause SquishedDawg::read_squished_dawg in src/dict/dawg.cpp to accept an unterminated forward-edge run, after which SquishedDawg::Load calls num_forward_edges(0) and last_edge in src/dict/dawg.h reads beyond edges_, causing a heap out-of-bounds read and process crash before image processing. 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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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 write in Tesseract OCR engine prior to 5.5.3 is triggered by a crafted LSTM .traineddata model file t
Same weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
EUVD-2026-56182
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB