{"id":"CVE-2026-73066","summary":"Tesseract: Heap out-of-bounds write in LSTM Convolve layer via crafted .traineddata","details":"Tesseract is an open source OCR engine. Prior to 5.5.3, a crafted .traineddata LSTM model component loaded through Tesseract's deserializer can cause an unchecked signed integer multiplication in Convolve::DeSerialize in src/lstm/convolve.cpp to wrap the convolution output-channel count, undersizing the forward-pass output buffer while writes use the unwrapped element count and causing a heap out-of-bounds write during OCR recognition. This issue is fixed in version 5.5.3.","aliases":["GHSA-7j76-5rq5-5jg8"],"modified":"2026-08-18T18:23:01.693534Z","published":"2026-08-11T14:49:16.817Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-787"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73066.json"},"references":[{"type":"WEB","url":"https://github.com/tesseract-ocr/tesseract/releases/tag/5.5.3"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73066.json"},{"type":"ADVISORY","url":"https://github.com/tesseract-ocr/tesseract/security/advisories/GHSA-7j76-5rq5-5jg8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73066"},{"type":"FIX","url":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72"},{"type":"FIX","url":"https://github.com/tesseract-ocr/tesseract/pull/4588"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/tesseract-ocr/tesseract","events":[{"introduced":"0"},{"fixed":"2f4d2f4bf45c363785d7bf1da29b6628f8939a72"},{"fixed":"db0ec62f81b0737fbbe184d8fea40af5738f8eef"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"5.5.3"}]}}],"versions":["5.5.2","5.5.1","5.5.0","5.4.1","5.4.0","5.4.0-rc2","5.4.0-rc1","5.3.4","5.3.3","5.3.2","5.3.1","5.3.0","5.3.0-rc1","5.2.0","5.1.0","5.0.1","5.0.0","5.0.0-rc3","5.0.0-rc2","5.0.0-rc1","5.0.0-beta-20210916","5.0.0-alpha-20210401","5.0.0-alpha-20201231","5.0.0-alpha-20201224","5.0.0-alpha","4.1.0-rc1","4.0.0","4.0.0-rc4","4.0.0-rc3","4.0.0-beta.4","4.0.0-beta.3","4.0.0-beta.1","4.00.00dev","4.00.00alpha","4.0.0-alpha","3.03-rc1","3.05.00dev","3.04.00","3.02.02","3.01","3.00","2.04","2.03","2.02","2.01","2.00","1.04b","1.04","1.03"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-73066.json","vanir_signatures_modified":"2026-08-18T18:23:01Z","vanir_signatures":[{"id":"CVE-2026-73066-11d6f7f1","signature_type":"Line","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/networkio.cpp"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["73145619003067429381917600501396459545","309357749074299553742194380462892326725","260279465536119782428549656107859738265","36702105071346276716225292589383104415","179887081879879547185917453629770905231","92917803465777689471357051215530347284","225230609854514213647588531435824268396","244797856609870534836225980638198168614"]}},{"id":"CVE-2026-73066-139163a4","signature_type":"Function","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/convolve.cpp","function":"Convolve::DeSerialize"},"deprecated":false,"digest":{"function_hash":"188204618510395931798797379451236998655","length":247}},{"signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/networkio.cpp","function":"NetworkIO::CopyTimeStepGeneral"},"deprecated":false,"digest":{"function_hash":"304543377338496671466555097898031278810","length":418},"id":"CVE-2026-73066-19436c1c","signature_type":"Function"},{"deprecated":false,"digest":{"function_hash":"162820957833253647939476412746270315949","length":400},"id":"CVE-2026-73066-3a5195c3","signature_type":"Function","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/networkio.cpp","function":"NetworkIO::Randomize"}},{"signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/network.cpp","function":"Network::CreateFromFile"},"deprecated":false,"digest":{"function_hash":"304379841540283477518922411047733138510","length":1953},"id":"CVE-2026-73066-435cfb57","signature_type":"Function"},{"target":{"file":"src/lstm/reconfig.cpp","function":"Reconfig::DeSerialize"},"deprecated":false,"digest":{"length":227,"function_hash":"78345631793667062205411527815682441011"},"id":"CVE-2026-73066-4dee1f42","signature_type":"Function","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72"},{"signature_type":"Line","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/network.cpp"},"deprecated":false,"digest":{"line_hashes":["335182316842311063581516786221469381863","190704020212128541804520692463984919198","329570836665922298437434155932297713913"],"threshold":0.9},"id":"CVE-2026-73066-78efc963"},{"id":"CVE-2026-73066-7cfd7f5f","signature_type":"Line","signature_version":"v1","source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/reconfig.cpp"},"deprecated":false,"digest":{"line_hashes":["162761278307816139270227672324292078346","87408906121133918812816267815673700441","227396909835036541254608065019587938279","86674546625604513507206734231559815156","274877573834425848879158944385239756061"],"threshold":0.9}},{"source":"https://github.com/tesseract-ocr/tesseract/commit/2f4d2f4bf45c363785d7bf1da29b6628f8939a72","target":{"file":"src/lstm/convolve.cpp"},"deprecated":false,"digest":{"line_hashes":["242522967204259424405993827404735282251","33202494154085949531298546928324040084","280337619075766578721657696916219555071","222664301776333723096123000743373785988","169519996524587638430791432671678101322","176059169278040221410489170304937217779","273846748934020594634438698145537194869","41915211224081415171887745815995755800","44219074738845398418875684492878952573"],"threshold":0.9},"id":"CVE-2026-73066-aa3872ec","signature_type":"Line","signature_version":"v1"}]}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N"}]}