Every CVE Search/ Get API key

CVE-2026-88051

Tesseract: Heap out-of-bounds write in GenericVector<T>::read due to independent reserved/size_used_ fields

8.6 HighFix available

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.17%Unchanged since Sep 11, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.6

Tesseract: Heap out-of-bounds write in GenericVector<T>::read due to independent reserved/size_used_ fields

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
CVE-2026-88051
CVSS 4.0
8.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-787
Updated
2026-11-02
EUVDEUVD-2026-75627 8.6

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
EUVD-2026-75627
CVSS 4.0
8.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
NVD 8.6

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
CVE-2026-88051
CVSS 4.0
8.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-787
Updated
2026-11-02
OSV 8.6

Tesseract: Heap out-of-bounds write in GenericVector<T>::read due to independent reserved/size_used_ fields

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
CVE-2026-88051
CVSS 4.0
8.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-787
Updated
2026-11-06
OSVDEBIAN-CVE-2026-88051 7.8

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
DEBIAN-CVE-2026-88051
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-4107 7.8

tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

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.(CVE-2026-88047)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88048)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, prior .traineddata hardening added bounds checks to NetworkIO::CopyTimeStepGeneral and NetworkIO::Randomize in src/lstm/networkio.cpp but left NetworkIO::WriteTimeStepPart and NetworkIO::AddTimeStepPart unchecked. In LSTM::Forward in src/lstm/lstm.cpp, source_ is sized from the independently deserialized na_ field while the WriteTimeStepPart count is ns_, which comes from the CI gate WeightMatrix dim1() value. A crafted NT_LSTM layer can make ns_ much larger than na_, causing a heap out-of-bounds write during the first recognition step on the default LSTM engine and resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88049)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, RecodedCharID::DeSerialize in src/ccutil/unicharcompress.h validates length_ but accepts negative code_ values from a crafted .traineddata recoder component. UnicharCompress::ComputeCodeRange in src/ccutil/unicharcompress.cpp can consequently produce code_range_ equal to zero, after which SetupDecoder indexes is_valid_start_ with the negative code on a size-zero vector. The resulting out-of-bounds bit write uses a large wrapped index and reliably causes a wild-address crash or allocation failure on the default LSTM engine. No fixed release is available as of this review.(CVE-2026-88050)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled…

Record
OESA-2026-4107
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 14 moreShow less
OSVOESA-2026-4108 7.8

tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

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.(CVE-2026-88047)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88048)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, prior .traineddata hardening added bounds checks to NetworkIO::CopyTimeStepGeneral and NetworkIO::Randomize in src/lstm/networkio.cpp but left NetworkIO::WriteTimeStepPart and NetworkIO::AddTimeStepPart unchecked. In LSTM::Forward in src/lstm/lstm.cpp, source_ is sized from the independently deserialized na_ field while the WriteTimeStepPart count is ns_, which comes from the CI gate WeightMatrix dim1() value. A crafted NT_LSTM layer can make ns_ much larger than na_, causing a heap out-of-bounds write during the first recognition step on the default LSTM engine and resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88049)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, RecodedCharID::DeSerialize in src/ccutil/unicharcompress.h validates length_ but accepts negative code_ values from a crafted .traineddata recoder component. UnicharCompress::ComputeCodeRange in src/ccutil/unicharcompress.cpp can consequently produce code_range_ equal to zero, after which SetupDecoder indexes is_valid_start_ with the negative code on a size-zero vector. The resulting out-of-bounds bit write uses a large wrapped index and reliably causes a wild-address crash or allocation failure on the default LSTM engine. No fixed release is available as of this review.(CVE-2026-88050)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled…

Record
OESA-2026-4108
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-4109 7.8

tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

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.(CVE-2026-88047)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88048)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, prior .traineddata hardening added bounds checks to NetworkIO::CopyTimeStepGeneral and NetworkIO::Randomize in src/lstm/networkio.cpp but left NetworkIO::WriteTimeStepPart and NetworkIO::AddTimeStepPart unchecked. In LSTM::Forward in src/lstm/lstm.cpp, source_ is sized from the independently deserialized na_ field while the WriteTimeStepPart count is ns_, which comes from the CI gate WeightMatrix dim1() value. A crafted NT_LSTM layer can make ns_ much larger than na_, causing a heap out-of-bounds write during the first recognition step on the default LSTM engine and resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88049)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, RecodedCharID::DeSerialize in src/ccutil/unicharcompress.h validates length_ but accepts negative code_ values from a crafted .traineddata recoder component. UnicharCompress::ComputeCodeRange in src/ccutil/unicharcompress.cpp can consequently produce code_range_ equal to zero, after which SetupDecoder indexes is_valid_start_ with the negative code on a size-zero vector. The resulting out-of-bounds bit write uses a large wrapped index and reliably causes a wild-address crash or allocation failure on the default LSTM engine. No fixed release is available as of this review.(CVE-2026-88050)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled…

Record
OESA-2026-4109
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-4110 7.8

tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

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.(CVE-2026-88047)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, FullyConnected::DeSerialize in src/lstm/fullyconnected.cpp does not validate the deserialized layer scalars ni_ and no_ against the weight-matrix dimensions. During FullyConnected::Forward, MatrixDotVector in src/lstm/weightmatrix.cpp writes w.dim1() results into temp_line, which is sized from no_, and reads w.dim2() minus one inputs from curr_input, which is sized from ni_. A crafted .traineddata NT_SOFTMAX layer can therefore use inconsistent dimensions to cause a heap out-of-bounds write and read on the default LSTM engine, resulting in heap corruption, a crash, information disclosure, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88048)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, prior .traineddata hardening added bounds checks to NetworkIO::CopyTimeStepGeneral and NetworkIO::Randomize in src/lstm/networkio.cpp but left NetworkIO::WriteTimeStepPart and NetworkIO::AddTimeStepPart unchecked. In LSTM::Forward in src/lstm/lstm.cpp, source_ is sized from the independently deserialized na_ field while the WriteTimeStepPart count is ns_, which comes from the CI gate WeightMatrix dim1() value. A crafted NT_LSTM layer can make ns_ much larger than na_, causing a heap out-of-bounds write during the first recognition step on the default LSTM engine and resulting in heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.(CVE-2026-88049)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, RecodedCharID::DeSerialize in src/ccutil/unicharcompress.h validates length_ but accepts negative code_ values from a crafted .traineddata recoder component. UnicharCompress::ComputeCodeRange in src/ccutil/unicharcompress.cpp can consequently produce code_range_ equal to zero, after which SetupDecoder indexes is_valid_start_ with the negative code on a size-zero vector. The resulting out-of-bounds bit write uses a large wrapped index and reliably causes a wild-address crash or allocation failure on the default LSTM engine. No fixed release is available as of this review.(CVE-2026-88050)

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled…

Record
OESA-2026-4110
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:95085 8.4

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)

  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)

  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)

  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)

  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)

  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:95085
CVSS 3.1
8.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-05
OSVRLSA-2026:95086 8.4

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)

  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)

  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)

  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)

  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)

  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:95086
CVSS 3.1
8.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-06
OSVRLSA-2026:95725 8.4

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)

  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)

  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)

  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)

  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)

  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:95725
CVSS 3.1
8.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-07
OSVUBUNTU-CVE-2026-88051 8.6

Tesseract is an open source OCR engine. In version 5.5.3 and earlier, the callback form of GenericVector::read in src/ccutil/genericvector.h reads the independent int32 fields reserved and size_used_ from a .traineddata model without a cap or an invariant check. reserve(reserved) allocates the backing array, but the callback loop writes size_used_ elements. A crafted TESSDATA_INTTEMP component with version_id 4 or later can therefore set reserved to a small value and size_used_ to a large value when fontinfo_table_.read(fp, read_info) is called from src/classify/intproto.cpp, causing a heap out-of-bounds write of FontInfo structures, heap corruption, a crash, or potentially controlled corruption. No fixed release is available as of this review.

Record
UBUNTU-CVE-2026-88051
CVSS 4.0
8.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVALSA-2026:95085 No score

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)
  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)
  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)
  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)
  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)
  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:95085
Updated
2026-11-05
OSVALSA-2026:95086 No score

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)
  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)
  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)
  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)
  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)
  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:95086
Updated
2026-11-05
OSVALSA-2026:95725 No score

Important: tesseract security update

A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

Security Fix(es):

  • tesseract: Tesseract: Heap out-of-bounds write/read leading to information disclosure via crafted data (CVE-2026-88048)
  • tesseract: Tesseract: Stack buffer overflow via crafted .traineddata file (CVE-2026-88047)
  • tesseract: Tesseract: Heap out-of-bounds write allows arbitrary code execution or denial of service (CVE-2026-88049)
  • tesseract: Tesseract: Heap out-of-bounds write via crafted .traineddata model (CVE-2026-88051)
  • tesseract: Tesseract: Heap out-of-bounds write leads to heap corruption via crafted data file (CVE-2026-88053)
  • tesseract: Tesseract: Heap out-of-bounds write can lead to arbitrary code execution (CVE-2026-88052)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:95725
Updated
2026-11-06
OSVMGASA-2026-0470 No score

Updated tesseract packages fix security vulnerabilities

This is a security update. It fixes nine vulnerabilities in tesseract, the OCR (text recognition) engine. All nine can be triggered only by feeding tesseract a maliciously crafted input file: either a specially crafted recognition/language data file (.traineddata) or a crafted word-list file. Depending on the specific flaw, this can cause a crash (denial of service) or memory corruption. CVE-2026-73067: out-of-bounds read when loading a crafted word-list file. CVE-2026-73066: out-of-bounds write when loading a crafted recognition model file. CVE-2026-88047: stack buffer overflow when loading a crafted language-normalisation file. CVE-2026-88048: out-of-bounds read/write from a crafted neural-network layer in a recognition model file. CVE-2026-88049: out-of-bounds write from a crafted neural-network layer in a recognition model file. CVE-2026-88050: out-of-bounds write from invalid character-encoding values in a crafted recognition model file. CVE-2026-88051: out-of-bounds write when loading a malformed internal data structure from a crafted recognition model file. CVE-2026-88052: out-of-bounds write when loading a crafted character-set file. CVE-2026-88053: out-of-bounds write when loading a crafted legacy recognition template file. CVE-2026-88054: crash (denial of service) when loading a crafted recognition model with an empty internal network. The tesseract package is updated to version 5.5.3, which on its own fixes CVE-2026-73067 and CVE-2026-73066. The remaining seven issues (CVE-2026-88047 to CVE-2026-88054) are not yet fixed in any upstream release, so nine patches taken from upstream's main development branch are also applied. Reported by Tristan Madani (CVE-2026-88047) and Zhixi "Jace" Sun (CVE-2026-88048 to CVE-2026-88054); see the individual advisories below for full credits, including CVE-2026-73067 and CVE-2026-73066.

Record
MGASA-2026-0470
Updated
2026-11-02
OSVopenSUSE-SU-2026:11887-1 No score

libtesseract5-5.5.3-2.1 on GA media

These are all security issues fixed in the libtesseract5-5.5.3-2.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11887-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21957-1 No score

Security update for tesseract-ocr

This update for tesseract-ocr fixes the following issues:

Changes in tesseract-ocr:

  • Update to version 5.5.3 (sync with Factory):
    • CVE-2026-73067: heap out-of-bounds read in SquishedDawg on crafted model (boo#1275623)
    • CVE-2026-88047: stack buffer overflow in Classify::ReadNormProtos on crafted traineddata (boo#1280925)
    • CVE-2026-88048: heap out-of-bounds write/read in FullyConnected::Forward via dimension mismatch (boo#1280929)
    • CVE-2026-88049: heap out-of-bounds write in LSTM::Forward via na_/gate-matrix dimension mismatch (boo#1280930)
    • CVE-2026-88050: out-of-bounds write in UnicharCompress via unvalidated recoder code values (boo#1280931)
    • CVE-2026-88051: heap out-of-bounds write in GenericVector<T>::read via reserved/size_used_ mismatch (boo#1280932)
    • CVE-2026-88052: heap out-of-bounds write in UNICHARSET::load_via_fgets via count/insert desynchronization (boo#1280933)
    • CVE-2026-88053: heap out-of-bounds write in Classify::ReadIntTemplates via unvalidated counts in crafted traineddata (boo#1280934)
    • CVE-2026-88054: denial of service via empty-stack dereference at model load (boo#1280935)
Record
openSUSE-SU-2026:21957-1
Updated
2026-11-02
OSVUSN-8882-1 No score

tesseract vulnerabilities

It was discovered that Tesseract incorrectly handled crafted .traineddata models. An attacker could possibly use this issue to cause Tesseract to crash, resulting in a denial of service. (CVE-2026-73067)

It was discovered that Tesseract did not properly validate dimensions in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-73066)

It was discovered that Tesseract did not properly limit token lengths in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88047)

It was discovered that Tesseract did not properly validate layer dimensions in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88048)

It was discovered that Tesseract did not properly validate layer sizes in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88049)

It was discovered that Tesseract incorrectly handled negative character codes in crafted .traineddata models. An attacker could possibly use this issue to cause Tesseract to crash, resulting in a denial of service. (CVE-2026-88050)

It was discovered that Tesseract did not properly validate vector sizes in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88051)

It was discovered that Tesseract did not properly validate character IDs in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88052)

It was discovered that Tesseract did not properly validate classifier counts in crafted .traineddata models. An attacker could possibly use this issue to execute arbitrary code. (CVE-2026-88053)

It was discovered that Tesseract incorrectly handled empty network layers in crafted .traineddata models. An attacker could possibly use this issue to cause Tesseract to crash, resulting in a denial of service. (CVE-2026-88054)

Record
USN-8882-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
tesseract
AlmaLinux:10
From an advisory covering 6 CVEs
before 5.3.4-11.el10_2
5.3.4-11.el10_2
tesseract-devel
AlmaLinux:10
From an advisory covering 6 CVEs
before 5.3.4-11.el10_2
5.3.4-11.el10_2
tesseract-devel
AlmaLinux:9
From an advisory covering 6 CVEs
before 4.1.1-11.el9_8
4.1.1-11.el9_8
tesseract
AlmaLinux:8
From an advisory covering 6 CVEs
before 4.1.1-7.el8_10
4.1.1-7.el8_10
tesseract-devel
AlmaLinux:8
From an advisory covering 6 CVEs
before 4.1.1-7.el8_10
4.1.1-7.el8_10
tesseract
Debian:12
All versions, plus listed versions
5.3.0-25.3.3-15.3.4-15.3.4-1.15.3.4-1.2
Show 4 moreShow less
5.3.4-1.35.3.4-1.45.5.0-15.5.0-1.1
None known
tesseract
Debian:13
All versions, plus listed versions
5.5.0-15.5.0-1.1
None known
tesseract
Debian:14
All versions, plus listed versions
5.5.0-15.5.0-1.1
None known
tesseract
Mageia:10
From an advisory covering 9 CVEs
before 5.5.3-1.mga10
5.5.3-1.mga10
tesseract
openEuler:22.03-LTS-SP4
From an advisory covering 8 CVEs
before 5.5.3-3.oe2203sp4
5.5.3-3.oe2203sp4
Show 23 moreShow less
Affected packages
PackageAffectedFixed
tesseract
openEuler:24.03-LTS-SP1
From an advisory covering 8 CVEs
before 5.5.3-3.oe2403sp1
5.5.3-3.oe2403sp1
tesseract
openEuler:24.03-LTS-SP3
From an advisory covering 8 CVEs
before 5.5.3-3.oe2403sp3
5.5.3-3.oe2403sp3
tesseract
openEuler:24.03-LTS-SP4
From an advisory covering 8 CVEs
before 5.5.3-3.oe2403sp4
5.5.3-3.oe2403sp4
tesseract
Rocky Linux:10
From an advisory covering 6 CVEs
before 0:5.3.4-11.el10_2
0:5.3.4-11.el10_2
tesseract
Rocky Linux:9
From an advisory covering 6 CVEs
before 0:4.1.1-11.el9_8
0:4.1.1-11.el9_8
tesseract
Rocky Linux:8
From an advisory covering 6 CVEs
before 0:4.1.1-7.el8_10
0:4.1.1-7.el8_10
tesseract
Ubuntu:Pro:14.04:LTS
before 3.03.02-3ubuntu0.1~esm1, plus listed versions
3.02.02-13.03.02-3
3.03.02-3ubuntu0.1~esm1
tesseract
Ubuntu:Pro:16.04:LTS
before 3.04.01-4ubuntu0.1~esm1, plus listed versions
3.04.00-5ubuntu13.04.01-23.04.01-4
3.04.01-4ubuntu0.1~esm1
tesseract
Ubuntu:Pro:18.04:LTS
before 4.00~git2288-10f4998a-2ubuntu0.1~esm1, plus listed versions
3.04.01-63.04.01-6build13.04.01-6build24.00~git2188-cdc35338-4build14.00~git2188-cdc35338-54.00~git2207-766b7bd6-3.14.00~git2219-40f43111-1.24.00~git2288-10f4998a-2
4.00~git2288-10f4998a-2ubuntu0.1~esm1
tesseract
Ubuntu:Pro:20.04:LTS
before 4.1.1-2ubuntu0.1~esm1, plus listed versions
4.1.0-14.1.0-24.1.1-14.1.1-24.1.1-2build14.1.1-2build2
4.1.1-2ubuntu0.1~esm1
tesseract
Ubuntu:Pro:22.04:LTS
before 4.1.1-2.1ubuntu0.1~esm1, plus listed versions
4.1.1-2.14.1.1-2.1build1
4.1.1-2.1ubuntu0.1~esm1
tesseract
Ubuntu:Pro:24.04:LTS
before 5.3.4-1ubuntu0.1~esm1, plus listed versions
5.3.0-2build15.3.3-15.3.3-1build15.3.4-15.3.4-1build35.3.4-1build45.3.4-1build5
5.3.4-1ubuntu0.1~esm1
tesseract
Ubuntu:26.10
All versions, plus listed versions
5.5.0-1build15.5.0-1.1
None known
tesseract
Ubuntu:Pro:26.04:LTS
before 5.5.0-1ubuntu0.1~esm1, plus listed versions
5.5.0-15.5.0-1build1
5.5.0-1ubuntu0.1~esm1
tesseract
Ubuntu:Pro:14.04:LTS
From an advisory covering 10 CVEs
before 3.03.02-3ubuntu0.1~esm1, plus listed versions
3.02.02-13.03.02-3
3.03.02-3ubuntu0.1~esm1
tesseract
Ubuntu:Pro:16.04:LTS
From an advisory covering 10 CVEs
before 3.04.01-4ubuntu0.1~esm1, plus listed versions
3.04.00-5ubuntu13.04.01-23.04.01-4
3.04.01-4ubuntu0.1~esm1
tesseract
Ubuntu:Pro:18.04:LTS
From an advisory covering 10 CVEs
before 4.00~git2288-10f4998a-2ubuntu0.1~esm1, plus listed versions
3.04.01-63.04.01-6build13.04.01-6build24.00~git2188-cdc35338-4build14.00~git2188-cdc35338-54.00~git2207-766b7bd6-3.14.00~git2219-40f43111-1.24.00~git2288-10f4998a-2
4.00~git2288-10f4998a-2ubuntu0.1~esm1
tesseract
Ubuntu:Pro:20.04:LTS
From an advisory covering 10 CVEs
before 4.1.1-2ubuntu0.1~esm1, plus listed versions
4.1.0-14.1.0-24.1.1-14.1.1-24.1.1-2build14.1.1-2build2
4.1.1-2ubuntu0.1~esm1
tesseract
Ubuntu:Pro:22.04:LTS
From an advisory covering 10 CVEs
before 4.1.1-2.1ubuntu0.1~esm1, plus listed versions
4.1.1-2.14.1.1-2.1build1
4.1.1-2.1ubuntu0.1~esm1
tesseract
Ubuntu:Pro:24.04:LTS
From an advisory covering 10 CVEs
before 5.3.4-1ubuntu0.1~esm1, plus listed versions
5.3.0-2build15.3.3-15.3.3-1build15.3.4-15.3.4-1build35.3.4-1build45.3.4-1build5
5.3.4-1ubuntu0.1~esm1
tesseract
Ubuntu:Pro:26.04:LTS
From an advisory covering 10 CVEs
before 5.5.0-1ubuntu0.1~esm1, plus listed versions
5.5.0-15.5.0-1build1
5.5.0-1ubuntu0.1~esm1
tesseract-ocr
openSUSE:Tumbleweed
From an advisory covering 9 CVEs
before 5.5.3-2.1
5.5.3-2.1
tesseract-ocr
openSUSE:Leap 16.0
From an advisory covering 9 CVEs
before 5.5.3-bp160.1.1
5.5.3-bp160.1.1

History

History
RecordedChangedSources
affected, aliases, referencesOSV
affected, aliases, referencesOSV
affected, aliases, referencesOSV
affectedOSV
affected, aliases, referencesOSV
affected, aliases, referencesOSV
affected, aliases, facts, referencesOSV
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-88051 is a high vulnerability (CVSS 8.6) in Tesseract-ocr Tesseract, published September 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.17%, the 6th percentile. Fixed in tesseract 3.03.02-3ubuntu0.1~esm1.

References

Show 83 moreShow less
This page doesn't list everything

Left out here: the rest of 4 source descriptions. The JSON record has them.

MoveEnter Open