{"id":"CVE-2026-118752","kind":"vulnerability","aliases":["CVE-2026-118752"],"related":[],"title":"FreeImage fork: heap overflow in PBM image decoder lets crafted files write memory","description":"FreeImage (danoli3 fork) before 3.19.22 contains a heap buffer overflow vulnerability in the PBM RLE decoder of PluginIFF.cpp that lacks bounds checks on ByteRun1 runs. Attackers can supply a crafted IFF/LBM PBM file with runs straddling scanline ends to write up to 127 controlled bytes past the heap-allocated bitmap.","summary":"The danoli3 fork of FreeImage before 3.19.22 has a heap buffer overflow in the PBM RLE decoder in PluginIFF.cpp, which does not bounds-check ByteRun1 runs. A crafted IFF/LBM PBM file can write up to 127 attacker-controlled bytes past the heap bitmap.","severity":"high","cvss":8.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["c++","freeimage","image-processing","package","self-hosted"],"not_affected_if":["no-untrusted-images","upstream-freeimage-only"],"how_to_check":"- Check the FreeImage fork version in the project lockfile or vendored source, for example `grep -ri freeimage` in dependency manifests\n- Confirm whether the app decodes IFF/LBM or PBM images from untrusted input (`unknown` if the sources do not say which code paths reach the decoder)","fix":"- Upgrade the danoli3 FreeImage fork to `3.19.22` or later\n- Until upgraded, reject or do not decode untrusted IFF/LBM and PBM uploads","status":"open","published_at":"2026-10-28T22:17:13+00:00","first_seen_at":"2026-10-28T22:35:34+00:00","triaged_at":"2026-10-28T22:36:41+00:00","updated_at":"2026-10-28T22:36:41+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-28T22:36:41Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the danoli3 FreeImage fork to `3.19.22` or later\n- Until upgraded, reject or do not decode untrusted IFF/LBM and PBM uploads","reach":"unknown","title":"FreeImage fork: heap overflow in PBM image decoder lets crafted files write memory","impact":"high","summary":"The danoli3 fork of FreeImage before 3.19.22 has a heap buffer overflow in the PBM RLE decoder in PluginIFF.cpp, which does not bounds-check ByteRun1 runs. A crafted IFF/LBM PBM file can write up to 127 attacker-controlled bytes past the heap bitmap.","category":"package","nicknames":[],"who_cares":["freeimage","c++","image-processing","self-hosted"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Attacker writes controlled bytes into heap memory, possibly running code","analyst_note":"Check the danoli3 FreeImage advisory or fix commit for exploitability details and whether the decoder is reachable without authentication.","how_to_check":"- Check the FreeImage fork version in the project lockfile or vendored source, for example `grep -ri freeimage` in dependency manifests\n- Confirm whether the app decodes IFF/LBM or PBM images from untrusted input (`unknown` if the sources do not say which code paths reach the decoder)","needs_analyst":true,"not_affected_if":["upstream-freeimage-only","no-untrusted-images"],"who_is_affected":"Applications that link the danoli3 fork of FreeImage before 3.19.22 and decode IFF/LBM or PBM images supplied by users or other untrusted sources are exposed. Systems that only process trusted images, or that do not use this fork, can skip it.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000667,"input_tokens":3369,"output_tokens":660,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-118752':16A,19A '-2026':15A,18A '127':65B,116C '3.19.22':35B,78C 'alloc':123C 'attack':67B,99C 'attacker-control':66B 'bitmap':73B,124C 'bound':52B,94C 'bounds-check':51B 'buffer':39B,82C 'byte':69B,118C 'byterun1':54B,97C 'c':20B 'check':53B,95C 'contain':79C 'control':68B,117C 'craft':10A,57B,103C 'cve':14A,17A 'danoli3':30B,75C 'decod':8A,45B,89C 'end':111C 'file':11A,60B,106C 'fork':2A,31B,76C 'freeimag':1A,21B,33B,74C 'heap':3A,38B,72B,81C,122C 'heap-alloc':121C 'host':28B 'iff/lbm':58B,104C 'imag':7A,23B 'image-process':22B 'lack':93C 'let':9A 'memori':13A 'overflow':4A,40B,83C 'packag':25B 'past':70B,119C 'pbm':6A,43B,59B,87C,105C 'pluginiff.cpp':47B,91C 'process':24B 'rle':44B,88C 'run':55B,98C,108C 'scanlin':110C 'self':27B 'self-host':26B 'straddl':109C 'suppli':101C 'vulner':84C 'write':12A,62B,113C","nicknames":[],"mitigations":[],"who_affected":"Applications that link the danoli3 fork of FreeImage before 3.19.22 and decode IFF/LBM or PBM images supplied by users or other untrusted sources are exposed. Systems that only process trusted images, or that do not use this fork, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T22:17:13+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/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_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118752","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118752","severity":null,"published_at":"2026-10-28T22:17:13+00:00","modified_at":"2026-10-28T22:17:13+00:00","first_seen_at":"2026-10-28T22:35:34+00:00","fetched_at":"2026-10-28T22:35:34+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}