CVE-2026-88052
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, UNICHARSET::load_via_fgets in src/ccutil/unicharset.cpp trusts the declared unichar count as a loop bound and uses id as an unchecked index into the unichars vector. unichar_insert_backwards_compatible can leave the vector unchanged for an empty, duplicate, or already-encodable representation, causing id to become larger than unichars.size(). Subsequent set_* calls and the write to unichars[id].properties.enabled then write UNICHAR_PROPERTIES beyond the vector during initialization in both the default LSTM and legacy engines, causing heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.
Scoring
- Severity
- HIGH
- CVSS base score
- 7.8
- CVSS vector
- CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- CWE
- CWE-129, CWE-787
- Published
- 2026-09-10
- Last modified
- 2026-09-10
Affected products
- tesseract-ocr tesseract
Weakness type
Related vulnerabilities
- CVE-2026-49838 — GoBGP confederation validation panics on empty AS_PATH attribute
- CVE-2023-54396 — PocketMine-MP before 4.8.1 Server Crash via Banner NBT
- CVE-2026-87500 — Improper validation of array index in ANGLE in Google Chrome prior to 153.0.8010.36 allowed a...
- CVE-2026-0799 — OOBR and OOBW in libpcap before 1.10.7
- CVE-2026-57159 — PJSIP: SDP parser out-of-bounds write in remote payload-type map maintenance
- CVE-2026-85084 — Out-of-bounds write in TizenFX MediaBufferBase indexer setter due to missing bounds check
- CVE-2023-31308 — A malicious virtual function can invoke the certain command handlers in the SMU, causing a denial...
- CVE-2026-82327 — Libsolv: libsolv: out-of-bounds write in repo_write() via unvalidated directory id from vertical/paged .solv filelist data