# CVE-2026-88047: Tesseract stack buffer overflow in ReadNormProtos

Source: https://junglewise.ai/threats/cve-2026-88047-tesseract-stack-buffer-overflow-in-readnormprotos  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-10. Updated: 2026-09-26  
License: CC BY 4.0 with a link back

CVE-2026-88047 · Severity: high · CVSS 7.8 · Published 2026-09-10

Tesseract is an open-source OCR (optical character recognition) engine used to extract text from images and documents. A vulnerability in its model-loading code allows attackers to crash the application or potentially execute arbitrary code by providing a malicious trained model file (.traineddata). This affects any application using Tesseract to process untrusted document models.

Technologies: [Tesseract OCR Tesseract](https://junglewise.ai/threats/technologies/tesseract). Vendors: [Tesseract OCR](https://junglewise.ai/threats/vendors/tesseract-ocr).

## Quick answers

**Is CVE-2026-88047 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-88047 being exploited in the wild.

**How severe is CVE-2026-88047?** High severity, with a CVSS score of 7.8, published 10 September 2026.

**Which products and versions are affected?** Tesseract OCR Tesseract 5.5.3 and earlier.

**Is there a fix for CVE-2026-88047?** A patch was published on 2026-08-25: Commit 1bda507 addresses the vulnerability Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-88047 attacked?** It is attacked with local access, in a software library.

**Am I affected by CVE-2026-88047?** Check whether you run Tesseract OCR Tesseract at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

The vulnerability is a stack buffer overflow (CWE-121) in Classify::ReadNormProtos (src/classify/normmatch.cpp:193) where the NORMPROTO component of a .traineddata file is parsed. The function uses std::istream::operator>>(char*) to extract a whitespace-delimited token into a fixed 61-byte stack buffer without setting a stream width limit. Since the line buffer allows up to 99 characters and the destination buffer is only 61 bytes, a token longer than 60 characters causes up to 39 bytes of attacker-controlled data to overflow the stack buffer during TessBaseAPI::Init. This corrupts adjacent stack memory (return addresses, frame pointers, adjacent variables), resulting in denial of service or potential control-flow hijacking. Builds using Apple's libc++ C++20 bounded array overload are incidentally protected; typical libstdc++ builds remain vulnerable. The fix (applied in commit 1bda507, patched in version 5.5.4) adds std::setw() to bound the extraction to the buffer size.

## Affected products

- Tesseract OCR Tesseract 5.5.3 and earlier

## Timeline

- 2026-08-31: disclosed
- 2026-08-25: patched: Commit 1bda507 addresses the vulnerability
- 2026-09-10: advisory: CVE-2026-88047 published

## References

- [https://github.com/tesseract-ocr/tesseract/commit/1bda5079b1c8a7e25f523486837426903d29ce84](https://github.com/tesseract-ocr/tesseract/commit/1bda5079b1c8a7e25f523486837426903d29ce84)
- [https://github.com/tesseract-ocr/tesseract/security/advisories/GHSA-5j2p-r5vc-q7f3](https://github.com/tesseract-ocr/tesseract/security/advisories/GHSA-5j2p-r5vc-q7f3)

## Related threats

- [Tesseract unsafe pointer deserialization in adaptive templates](https://junglewise.ai/threats/cve-2026-119341-tesseract-is-an-open-source-ocr-engine-prior-to-5-5-4)
- [Tesseract matrix deserialization integer overflow denial of service](https://junglewise.ai/threats/cve-2026-119340-tesseract-is-an-open-source-ocr-engine-prior-to-5-5-4-generic-2d)
- [Tesseract empty network stack denial of service in model deserialization](https://junglewise.ai/threats/cve-2026-88054-tesseract-empty-network-stack-denial-of-service-in-model)
- [Tesseract OCR heap out-of-bounds write in inttemp deserialization](https://junglewise.ai/threats/cve-2026-88053-tesseract-ocr-heap-out-of-bounds-write-in-inttemp-deserialization)
- [Tesseract heap out-of-bounds write in UNICHARSET loading](https://junglewise.ai/threats/cve-2026-88052-tesseract-heap-out-of-bounds-write-in-unicharset-loading)
