Описание
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.
A flaw was found in Tesseract, an open-source Optical Character Recognition (OCR) engine. The UNICHARSET::load_via_fgets function incorrectly trusts a declared character count, which can lead to an out-of-bounds write in memory. A remote attacker could exploit this vulnerability by providing a specially crafted input, potentially causing heap corruption, a denial of service, or arbitrary code execution.
Меры по смягчению последствий
To mitigate this vulnerability, avoid processing untrusted or malicious image and document files with Tesseract. If Tesseract is not essential for system operations, consider removing the tesseract package to eliminate the attack surface. If the tesseract package is removed, ensure that any dependent applications or services are not adversely affected.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Enterprise Linux 10 | tesseract | Affected | ||
| Red Hat Enterprise Linux 8 | tesseract | Affected | ||
| Red Hat Enterprise Linux 9 | tesseract | Affected |
Показывать по
Дополнительная информация
Статус:
EPSS
7.8 High
CVSS3
Связанные уязвимости
(Tesseract is an open source OCR engine. In version 5.5.3 and earlier, ...)
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.
Tesseract is an open source OCR engine. In version 5.5.3 and earlier, ...
EPSS
7.8 High
CVSS3