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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-129",
"CWE-787"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88052.json"
}{
"extracted_events": [
{
"introduced": "0"
},
{
"last_affected": "5.5.3"
}
],
"source": [
"AFFECTED_FIELD",
"REFERENCES"
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-88052.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"31055153575333314414940733318351469608",
"272429766146708562171917816086847781888",
"41806524922558671123811076321327284508",
"210836732590326438798720308707441350409",
"171513719246586553662575648139539348595",
"269858090195508815025669956463281200282",
"261028042558446446969838536381910990138",
"4139671400558638640355186814220627327"
],
"threshold": 0.9
},
"id": "CVE-2026-88052-e5acc54f",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/tesseract-ocr/tesseract/commit/2d04d640db2e8c7e3bab2369d599343b5a8b8443",
"target": {
"file": "src/ccutil/unicharset.cpp"
}
}
]
"2026-09-12T14:00:55Z"