Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft GIF with frame left+width past screen
-
DeliveryDeliver file to victim application
-
ExploitApp loads it with GIF_PLAYBACK flag
-
ExecutionGifPlaybackFillRect writes past canvas allocation
-
ImpactHeap corruption, potential code execution
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 the consuming application to load an attacker-supplied GIF via FreeImage's animated-playback path, i.e. with the GIF_PLAYBACK flag set; the crafted GIF must contain a frame whose left offset plus width exceeds the logical screen width (e.g. a frame beginning at or beyond the canvas edge), which drives the unclipped write in GifPlaybackCompositeFrame() and GifPlaybackFillRect(). Limiting factors that reduce real-world reach: the vulnerable compositing code is only reached when GIF_PLAYBACK is used, not during plain single-frame GIF decoding; the attack vector is local (AV:L) and needs the victim to open the file (UI:P, passive interaction); and only the danoli3 FreeImage fork before 3.19.25 is affected - updating to 3.19.25 is the vendor-provided fix. |
| Impact | Signals point to a genuine but conditional memory-corruption flaw rather than an internet-wide emergency. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VC:H/VI:H/VA:H) scores 8.5 and reflects a local attack vector requiring passive user interaction with full confidentiality/integrity/availability impact on the vulnerable system - consistent with a client-side image-parsing bug (CWE-787 out-of-bounds write) reached by opening a crafted file, not a remotely sprayable network service. There is no KEV listing and no EPSS score in the input, so active-exploitation and statistical-exploitation signals are simply absent (not low - missing); do not read that absence as safety. The vuln.today Decision label is 'this_week' (not act_now/emergency), which aligns with high technical impact tempered by the local vector and the requirement that the application actually use the GIF_PLAYBACK code path. A vendor patch exists (PR #183, release 3.19.25) and the root cause is confirmed by the diff. Bottom line: a real priority for any product that loads untrusted animated GIFs through the danoli3 FreeImage fork with GIF_PLAYBACK, but its reach is gated by local file delivery plus that specific loading mode, so it is a patch-this-week item rather than a drop-everything network-wormable issue. |
| Exploit ScenarioDerived | An attacker crafts an animated GIF whose frame left offset plus width exceeds the logical screen width and delivers it to a victim who opens it in an application that loads GIFs through the danoli3 FreeImage fork with the GIF_PLAYBACK flag. During playback compositing, GifPlaybackCompositeFrame() and GifPlaybackFillRect() write past the canvas heap allocation, corrupting adjacent heap memory with attacker-influenced data and potentially leading to code execution. The regression test added in PR #183 (testGifPlaybackBounds.cpp) programmatically builds such an out-of-bounds GIF, so a public PoC reference exists; it is not verified as working weaponized exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Heap buffer overflow in the danoli3 FreeImage fork's animated-GIF playback compositor allows memory corruption when a crafted GIF is loaded with the GIF_PLAYBACK flag; versions before 3.19.25 are affected. The flaw is triggered by a frame whose left offset plus width exceeds the logical screen width, causing GifPlaybackCompositeFrame() and GifPlaybackFillRect() to write past the canvas allocation. Exploitation is conditional: an application must load an attacker-supplied GIF through the multi-page playback path, and the victim must open the file (local vector, user interaction), so no public exploit has been identified at time of analysis, though the vendor fix is a straightforward upgrade to 3.19.25.
RemediationAI
Upgrade the danoli3 FreeImage fork to 3.19.25, which contains the clipping fix in PluginGIF.cpp; the changes are visible in PR https://github.com/danoli3/FreeImage/pull/183 and commits https://github.com/danoli3/FreeImage/commit/96f4099f8e307484ba69b4aa14d772b7679a1bfb and https://github.com/danoli3/FreeImage/commit/0da5ddb4d311e5222251348cca1aa988478b1034, and the release is at https://github.com/danoli3/FreeImage/releases/tag/3.19.25. Vendor-released patch: 3.19.25. If immediate rebuild is not possible, the exposure can be cut by avoiding the animated-playback entry points - do not pass GIF_PLAYBACK to FreeImage_LoadMultiBitmap and decode only single frames or re-encode untrusted GIFs through a hardened parser - at the cost of losing animation compositing and per-page playback behavior in the consuming application; alternatively, restrict upload or file-open paths that feed GIFs into FreeImage to trusted sources until the library is rebuilt against 3.19.25.
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 widely embedded image-decoding library, and the danoli3 fork ships a GIF animation playback path that is only used when callers pass GIF_PLAYBACK to FreeImage_LoadMultiBitmapFrom*; plain single-frame GIF decoding does not reach the vulnerable code. The root cause is CWE-787 (out-of-bounds write) in Source/FreeImage/PluginGIF.cpp: the compositor derives its per-row copy length from the frame's own pinfo.width and computes a destination row from pinfo.left/pinfo.top without clipping either against the logical screen dimensions of the canvas bitmap. A frame rectangle that starts inside or beyond the canvas and extends past its right edge therefore drives writes beyond the allocated scanline. The upstream fix (PR 183, commits 96f4099f and 0da5ddb4) adds clamping in both GifPlaybackCompositeFrame() and GifPlaybackFillRect(): it computes visible_width as logicalwidth - pinfo.left (zero when left is at or past the edge), caps the loop at frame_width = min(pinfo.width, visible_width), skips zero-width frames, and replaces the scanline index guard with a canvas_y >= logicalheight check. A regression test (testGifPlaybackBounds.cpp) builds a 10x10 logical screen containing a 5x1 frame at x=8, a one-pixel frame at x=60000, and a third page that clears an off-canvas prior frame. CPE data maps both the danoli3 fork (danoli3:freeimage) and the freeimage:freeimage naming to the affected range.
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
Victim must open a crafted local GIF with GIF_PLAYBACK, so AV:L/UI:R and PR:N; heap out-of-bounds write yields full C/I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
FreeImage (danoli3 fork) before 3.19.25 contains a heap buffer overflow vulnerability in PluginGIF.cpp that allows attackers to write past the canvas allocation via unclipped GIF frame rectangles. Attackers can craft a GIF whose frame left plus width exceeds the logical screen width, causing GifPlaybackCompositeFrame() and GifPlaybackFillRect() to corrupt heap memory when loaded with GIF_PLAYBACK.
Executive ViewAI
A heap buffer overflow in the danoli3 FreeImage fork's animated-GIF playback compositor (CVE-2026-118753) allows memory corruption when a crafted GIF is loaded with the GIF_PLAYBACK flag, affecting versions before 3.19.25. Successful exploitation requires a user to open a malicious GIF in an application using the playback path, potentially enabling code execution or crashes. Leadership should prioritize patch deployment across affected systems, particularly in environments where untrusted GIFs are processed, due to the high severity score.
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-112497
GHSA-wr69-568q-rrqg
NVD
CVE.org
Exploit-DB