Skip to main content
← All vulnerabilities
CVE-2026-119341

Tesseract: File-controlled pointers still reach `delete` in ADAPT_CLASS_STRUCT destructor

Only affects Tesseract before 5.5.3 when the legacy engine (--oem 0) is used with classify_use_pre_adapted_templates enabled, which defaults to 0. Fixed in 5.5.3.

Published
Last modified
published
Not listed in CISA KEV
Specific setups only
Fix
Fixed in 5.5.3
None on Exploit-DB, Metasploit or GitHub

Summary

Tesseract, an open source OCR (optical character recognition) engine, is affected when its legacy engine loads pre-adapted template files with the classifier option enabled. A crafted template file can cause memory corruption and crash the program, resulting in a denial of service.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

Tesseract is an open source OCR engine. Prior to 5.5.4, ReadAdaptedClass in src/classify/adaptive.cpp raw-reads an ADAPT_CLASS_STRUCT from a pre-adapted-template .a file without neutralizing TempProtos and Config pointer fields before any destructor path. When the legacy engine is selected, classify_use_pre_adapted_templates is enabled, and an attacker can write the output-basename .a file, the success or rejection path can pass file-controlled pointers to ~ADAPT_CLASS_STRUCT and operator delete, causing memory corruption and denial of service. This issue is fixed in version 5.5.4.

Timeline

  1. CVE published
  2. First seen by cve.now

Affected versions

  • tesseract-ocr tesseract

    fixed in 5.5.3

References 4

GitHub · tesseract-ocr/tesseract

FAQ

Questions about CVE-2026-119341

What does this mean?

A file-controlled pointer can reach operator delete in the ADAPT_CLASS_STRUCT destructor, causing memory corruption and denial of service. The advisory does not claim code execution.Source: github.com

Am I affected, and how do I check?

The bug affects Tesseract versions before 5.5.3 that run the legacy engine (--oem 0) with classify_use_pre_adapted_templates enabled, which defaults to 0. It also requires that an attacker can write the file <output-basename>.a. To check, run tesseract --version and look at the classify_use_pre_adapted_templates setting in your configuration.Source: github.com

What should I do about it?

Upgrade Tesseract to 5.5.3 or later.Source: github.com

Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data