Tesseract: ReadNormProtos stack buffer overflow
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-121 and the CVSS impact.
Summary
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, Classify::ReadNormProtos in src/classify/normmatch.cpp parses the NORMPROTO component of a .traineddata file and uses std::istream::operator>>(char*) to extract a whitespace-delimited token into a fixed 61-byte stack buffer without setting a stream width. The 100-byte line buffer can carry a token of up to 99 characters, so a token longer than 60 characters writes up to 39 attacker-controlled bytes past the buffer during TessBaseAPI::Init of the legacy engine, causing stack corruption, denial of service, and potentially control-flow hijacking on affected standard-library implementations. Builds using Apple's libc++ C++20 bounded array overload are incidentally protected, while typical libstdc++ builds remain affected. No fixed release is available as of this review.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| tesseract-ocr | tesseract | up to 5.5.3 | — | No fix listed | CNA |
- tesseract Vendortesseract-ocr Affected up to 5.5.3 Fixed in — No fix listed CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:tesseract-ocr:tesseract_ocr:*:*:*:*:*:*:*:* | up to 5.5.3 | Vulnerable | tesseract-ocr |
- cpe:2.3:a:tesseract-ocr:tesseract_ocr:*:*:*:*:*:*:*:* Versions up to 5.5.3 Vulnerable ·tesseract-ocr
Remediation
Red Hat 3 advisories
- RHSA-2026:95725 Released 2026-11-05 · Red Hat rating Importanttesseract security update
- Red Hat Enterprise Linux AppStream (v. 8) tesseract-4.1.1-7.el8_10
- Red Hat Enterprise Linux CRB (v. 8) tesseract-devel-4.1.1-7.el8_10
- RHSA-2026:95086 Released 2026-11-04 · Red Hat rating Importanttesseract security update
- Red Hat Enterprise Linux AppStream (v. 9) tesseract-4.1.1-11.el9_8
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) tesseract-devel-4.1.1-11.el9_8
- RHSA-2026:95085 Released 2026-11-04 · Red Hat rating Importanttesseract security update
- Red Hat Enterprise Linux AppStream (v. 10) tesseract-5.3.4-11.el10_2
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) tesseract-devel-5.3.4-11.el10_2
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux AppStream (v. 10) | Fixed | RHSA-2026:95085 |
| Red Hat Enterprise Linux AppStream (v. 8) | Fixed | RHSA-2026:95725 |
| Red Hat Enterprise Linux AppStream (v. 9) | Fixed | RHSA-2026:95086 |
| Red Hat Enterprise Linux CRB (v. 8) | Fixed | RHSA-2026:95725 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) | Fixed | RHSA-2026:95085 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) | Fixed | RHSA-2026:95086 |
Timeline
- 2026-10-02 Threatist record created from CVE-2026-88047
- 2026-11-04 Fix available: RHSA-2026:95085 · Red Hat
- 2026-11-04 Fix available: Red Hat Enterprise Linux AppStream (v. 10), Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) · Red Hat
- 2026-11-05 Fix available: Red Hat Enterprise Linux AppStream (v. 9), Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) · Red Hat
- 2026-11-06 Fix available: RHSA-2026:95086 · Red Hat
- 2026-11-06 Fix available: Red Hat Enterprise Linux AppStream (v. 8), Red Hat Enterprise Linux CRB (v. 8) · Red Hat
- 2026-11-06 Fix available: RHSA-2026:95725 · Red Hat
References
More tesseract-ocr Tesseract Ocr vulnerabilities
- TI-2026-60073 Tesseract: Heap out-of-bounds write in Classify::ReadIntTemplates via unvalidated counts in crafted .traineddata CVSS 4.0HIGH 8.6
- TI-2026-60071 Tesseract: Heap out-of-bounds write in GenericVector<T>::read due to independent reserved/size_used_ fields CVSS 4.0HIGH 8.6
- TI-2026-60069 Tesseract: Heap out-of-bounds write in LSTM::Forward via na_/gate-matrix dimension mismatch CVSS 4.0HIGH 8.6
- TI-2026-60068 Tesseract: Heap out-of-bounds write/read in FullyConnected::Forward via layer/weight-matrix dimension mismatch CVSS 4.0HIGH 8.6
- TI-2026-60074 Tesseract: Denial of service via empty-stack dereference in Plumbing/Series at model load CVSS 4.0MEDIUM 6.9
- TI-2026-60070 Tesseract: Out-of-bounds write in UnicharCompress via unvalidated recoder code values CVSS 4.0MEDIUM 6.9
Sources
- CVE-2026-88047 · CVE Program
- CVE-2026-88047 · NVD
- FIRST EPSS
- CVE-2026-88047 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences