Katalog CVE

CVE-2026-88047

WysokieCVSS 8.6
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

Tesseract w wersji 5.5.3 i wcześniejszych w funkcji Classify::ReadNormProtos wczytuje token z pliku .traineddata do bufora stosu o stałym rozmiarze 61 bajtów bez ustawienia szerokości strumienia. Token dłuższy niż 60 znaków zapisuje do 39 bajtów poza buforem podczas inicjalizacji TessBaseAPI w silniku legacy. Brak dostępnej poprawionej wersji.

Ocena ryzyka

Może dojść do uszkodzenia stosu, odmowy usługi, a potencjalnie także przejęcia przepływu sterowania. Ryzyko dotyczy kompilacji z typowym libstdc++, natomiast kompilacje z libc++ firmy Apple są przypadkowo chronione.

Rekomendacja

Nie wczytuj niezaufanych plików .traineddata i ogranicz dostęp do katalogu tessdata. Śledź wydania Tesseract i wdróż poprawkę niezwłocznie po jej udostępnieniu.

Inne podatności w Tesseract

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, Classify::ReadNormProtos in src/classify/normmatch.cpp parses the NORMPROTO component of a .traineddata file and uses std::istream::operator>>(char*) to extract a whitespace-delimited token into a fixed 61-byte stack buffer without setting a stream width. The 100-byte line buffer can carry a token of up to 99 characters, so a token longer than 60 characters writes up to 39 attacker-controlled bytes past the buffer during TessBaseAPI::Init of the legacy engine, causing stack corruption, denial of service, and potentially control-flow hijacking on affected standard-library implementations. Builds using Apple's libc++ C++20 bounded array overload are incidentally protected, while typical libstdc++ builds remain affected. No fixed release is available as of this review.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS