Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious IFF/LBM PBM file with cross-scanline RLE runs
-
ExploitDeliver file to victim for opening
-
ExecutionByteRun1 decoder copies run past bitmap end
-
ImpactWrite up to 127 controlled bytes into adjacent heap, corrupt memory
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an application built on the danoli3 FreeImage fork (before 3.19.22) to decode an attacker-supplied IFF/LBM image that uses the PBM ByteRun1 RLE compression path, with RLE runs deliberately constructed to straddle scanline ends so the run copy overruns the heap-allocated bitmap. The victim must open or process the file - UI:P / passive user interaction - and the vector is local (AV:L), so there is no remote unauthenticated path; no authentication is required (PR:N). Limiting factors: the attacker needs the target application to actually route untrusted images through this specific IFF PBM decoder, and the overflow is bounded to roughly 127 bytes of controlled data past the allocation, so reliable code execution depends on heap layout; applications that only process trusted images are not realistically exposed. |
| Impact | The CVSS 4.0 vector (8.5) is driven by the triple-high impact (VC:H/VI:H/VA:H) of a 127-byte controlled heap out-of-bounds write (CWE-787), but the exploitability metrics temper real-world urgency: AV:L means there is no network vector - an attacker cannot reach this remotely and must get a crafted file onto the system - and UI:P (passive user interaction) means a victim must open or process the malicious IFF/LBM PBM file in an application using this library. No EPSS score was provided and the CVE is not listed in CISA KEV, so there is no quantitative or confirmed signal of active exploitation. The vuln.today decision label is 'this_week' (not act_now/emergency), which aligns with a serious-but-not-under-active-attack posture: a genuine memory-corruption bug worth patching promptly, but not a drop-everything internet-facing emergency. The dominant risk driver is how the affected software is deployed - if it silently decodes untrusted user-supplied images (thumbnailers, upload pipelines, viewers), the UI:P barrier is effectively met routinely and risk rises accordingly; in deployments that only process trusted local files, practical risk is lower. The source diff confirms the mechanism (missing bounds check on bytes written versus scanline length in the ByteRun1 RLE path), so this is a well-substantiated defect rather than a speculative high-CVSS entry. |
| Exploit ScenarioDerived | An attacker crafts a malicious IFF/LBM image containing PBM ByteRun1 RLE runs that straddle scanline boundaries and delivers it to a victim (email attachment, upload, or a file opened by an application that uses the danoli3 FreeImage fork). When the victim's application decodes the image, the unbounded run copy writes up to 127 attacker-controlled bytes past the heap-allocated bitmap, corrupting adjacent heap memory. No public exploit identified at time of analysis; exploitation requires the victim to open/process the file (UI:P) and there is no remote network vector. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
A heap buffer overflow in the PBM RLE (ByteRun1) decoder of PluginIFF.cpp in the danoli3 FreeImage fork lets a crafted IFF/LBM image write up to 127 attacker-controlled bytes past the heap-allocated bitmap when a run straddles a scanline end. Applications built on the fork before 3.19.22 are affected; the vector is local (AV:L) with passive user interaction (UI:R) and no authentication requirement (PR:N), so exposure depends on a victim opening a malicious image in a program that routes untrusted IFF/LBM files through this decoder. Exploitation is not confirmed in the wild and no public exploit has been identified at time of analysis, though the vendor has released 3.19.22 with the fix.
RemediationAI
Vendor-released patch: upgrade the danoli3 FreeImage fork to 3.19.22 (https://github.com/danoli3/FreeImage/releases/tag/3.19.22), which contains PR #161; the underlying fixes are commits e1105d3b464b679f0525c6178d9ccf49d55cf712 and cf173c16354274dc8fb739dc395fc7f32efe7d45, either of which can be applied if a full release upgrade is not possible. Because the library is statically or dynamically linked into downstream applications, upgrading the library alone is insufficient - every application shipping the embedded FreeImage build must be rebuilt against 3.19.22 and redeployed. No vendor-documented workaround is given in the available sources and updating is the only complete fix; in the interim, exposure is limited to applications that route untrusted IFF/LBM files through the PBM ByteRun1 decoder, so preventing untrusted images from reaching that loader path (for example by restricting which formats an application accepts) reduces risk, at the cost of losing legitimate IFF/LBM support.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreeImage is a C/C++ image loading and saving library used by many desktop and server applications; the danoli3 fork maintains the codebase and ships its own release tags. PluginIFF.cpp implements the IFF/LBM loader, and for PBM-encoded bitmaps it expands ByteRun1 (PackBits-style) RLE data: a control byte indicates a literal run or a repeated-byte run, followed by the payload. The decoder copied each expanded run into the destination scanline without checking how many bytes had already been written, so a run whose copy crosses the end of the scanline continues writing into adjacent heap memory. The result is a CWE-787 out-of-bounds write, bounded to roughly 127 bytes per run, which can corrupt heap metadata or neighbouring allocations in the attacker's favour. The upstream fix in PR #161 adds an explicit scanline boundary test that breaks out of the run copy once the bytes written reach the line length, and also adds parentheses to the scanline-length expression FreeImage_GetLine(dib) + 1 & ~1 for clarity (operator precedence made the parenthesised and unparenthesised forms equivalent, so the bounds check is the substantive change). Whether the same flaw is present in other FreeImage lineages is not established by the available sources, which document and patch only the danoli3 fork.
Know when Freeimage gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
A local crafted file the victim must open gives AV:L and UI:R with PR:N; the controlled heap write plausibly yields high confidentiality, integrity and availability impact without scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Executive ViewAI
A heap buffer overflow in the danoli3 FreeImage fork (CVE-2026-118752) can be triggered when a user opens a maliciously crafted IFF/LBM image in any application built on versions before 3.19.22. This could allow an attacker to corrupt memory and potentially execute code under the user's privileges, impacting workstation integrity and data confidentiality. Leadership should prioritize patching or upgrading affected software because the vulnerability requires minimal user interaction and affects a widely used image processing library.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
FreeImage 3.18.0 has a use-after-free in the TARGA plugin's loadRLE function. Processing a malicious TGA file can lead t
An integer overflow vulnerability in FreeImageIO.cpp::_MemoryReadProc in FreeImage 3.18.0 allows attackers to obtain sen
An integer overflow vulnerability in LoadPixelDataRLE4 function in PluginBMP.cpp in Freeimage 3.18.0 allows attackers to
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod
A flaw was found in the freeimage library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, n
In FreeImage 3.18.0, an out-of-bounds access occurs because of mishandling of the OpenJPEG j2k_read_ppm_v3 function in j
EUVD-2026-112496
GHSA-pqw8-2jmw-8f2c
NVD
CVE.org
Exploit-DB