CVE-2026-88050

Source
https://cve.org/CVERecord?id=CVE-2026-88050
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-88050.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-88050
Aliases
  • GHSA-7v9h-3q3m-w68g
Downstream
Published
2026-09-10T16:24:21Z
Modified
2026-09-12T08:07:30Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Tesseract: Out-of-bounds write in UnicharCompress via unvalidated recoder code values
Details

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.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-787"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88050.json"
}
References

Affected packages

Git / github.com/tesseract-ocr/tesseract

Affected ranges

Type
GIT
Repo
https://github.com/tesseract-ocr/tesseract
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "last_affected": "5.5.3"
        }
    ],
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ]
}

Affected versions

1.*
1.03
1.04
1.04b
2.*
2.00
2.01
2.02
2.03
2.04
3.*
3.00
3.01
3.02.02
3.03-rc1
3.04.00
3.05.00dev
4.*
4.0.0
4.0.0-alpha
4.0.0-beta.1
4.0.0-beta.3
4.0.0-beta.4
4.0.0-rc3
4.0.0-rc4
4.00.00alpha
4.00.00dev
4.1.0-rc1
5.*
5.0.0
5.0.0-alpha
5.0.0-alpha-20201224
5.0.0-alpha-20201231
5.0.0-alpha-20210401
5.0.0-beta-20210916
5.0.0-rc1
5.0.0-rc2
5.0.0-rc3
5.0.1
5.1.0
5.2.0
5.3.0
5.3.0-rc1
5.3.1
5.3.2
5.3.3
5.3.4
5.4.0
5.4.0-rc1
5.4.0-rc2
5.4.1
5.5.0
5.5.1
5.5.2
5.5.3

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-88050.json"
vanir_signatures
[
    {
        "deprecated": false,
        "digest": {
            "function_hash": "141059818555476385088328405399862787593",
            "length": 1172
        },
        "id": "CVE-2026-88050-56ce16c5",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/tesseract-ocr/tesseract/commit/c94a5532ee04db5a4919542832fd94caee5ea58f",
        "target": {
            "file": "src/ccutil/unicharcompress.cpp",
            "function": "UnicharCompress::SetupDecoder"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "248805385380565189110177747411574908780",
                "243046462348774369418965631591022038900",
                "36352490843146293462467693878771511752",
                "164242138590748854114543628482670533561",
                "96016631169104618356959413908526019495",
                "338586230479379164611941968873970013355",
                "202832577893542751687299447072074256661",
                "229777085745316698020738919479055185982"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-88050-71182428",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/tesseract-ocr/tesseract/commit/c94a5532ee04db5a4919542832fd94caee5ea58f",
        "target": {
            "file": "src/ccutil/unicharcompress.h"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "function_hash": "52481406087320304322866655116758362816",
            "length": 75
        },
        "id": "CVE-2026-88050-9f6c5f90",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/tesseract-ocr/tesseract/commit/c94a5532ee04db5a4919542832fd94caee5ea58f",
        "target": {
            "file": "src/ccutil/unicharcompress.h",
            "function": "IsValidFirstCode"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "178414830336735698182791180242946074628",
                "31909309558510960130747030381669504813",
                "263603276381846693614120394602431371163",
                "281673487490120007289578136931437184039"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-88050-bda6022e",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/tesseract-ocr/tesseract/commit/c94a5532ee04db5a4919542832fd94caee5ea58f",
        "target": {
            "file": "src/ccutil/unicharcompress.cpp"
        }
    }
]
vanir_signatures_modified
"2026-09-12T08:07:30Z"