Skip to main content

FreeImage EUVDEUVD-2026-102276

| CVE-2026-111149 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-15 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft PICT with undersized rowBytes
  2. Delivery
    Deliver file to victim application
  3. Exploit
    Victim opens/parses image
  4. Execution
    Unpack32Bits over-reads heap
  5. Impact
    Leak adjacent memory or crash process

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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 that links the danoli3 FreeImage fork (through 3.19.23) to load and decode an attacker-supplied PICT file whose PixMap specifies a rowBytes value smaller than the file-controlled width, reaching the Unpack32Bits() 32-bit plane-conversion path. Key LIMITING factors: the vector is LOCAL (AV:L) and requires passive user interaction (UI:P) - a victim must open or process the malicious file; there is no network-facing or unauthenticated path. The target application must support/attempt PICT decoding, and impact is bounded to heap over-read (information disclosure of up to 64 KiB and/or crash), not code execution.

Impact

This is a moderate-risk, client-side memory-safety flaw rather than a high-priority remote threat. The authoritative CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) describes a LOCAL attack requiring passive user interaction (a victim must open or process a malicious file), yielding low confidentiality impact (a bounded heap over-read leaking memory into decoded pixels) and high availability impact (process crash). This is internally consistent with the CWE-125 (out-of-bounds read) classification and the description. Publicly available exploit code exists (per VulnCheck advisory and the hackmd write-up), which raises practical risk, but there is NO CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation - exploitation status is 'publicly available exploit code exists', which must not be conflated with in-the-wild use. No conflicting signals were found: the LOCAL vector and user-interaction requirement correctly reflect a library that parses attacker-supplied files, so the realistic worst case is information disclosure of adjacent heap contents (up to 64 KiB) or denial of service, not remote code execution. Net: a legitimate issue to patch in software bundling the affected fork, but not an emergency.

Exploit ScenarioDerived

An attacker crafts a malicious PICT image with a truncated or undersized rowBytes value relative to the file-controlled PixMap width, then delivers it to a victim who opens it in an application that uses the danoli3 FreeImage fork (≤3.19.23). When Unpack32Bits() in PluginPICT.cpp decodes the image, it over-reads up to 64 KiB of adjacent heap memory, leaking that data into the decoded pixels or crashing the process. Public proof-of-concept exploit code is available via the VulnCheck advisory and an associated hackmd write-up.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Decoding a crafted PICT image with FreeImage (danoli3 fork) through 3.19.23 can over-read up to 64 KiB of heap memory inside Unpack32Bits() in PluginPICT.cpp, leaking process memory into the decoded pixel output or crashing the host application. The flaw affects any application that links the danoli3 fork (or the corresponding FreeImage codebase) and attempts to decode an attacker-supplied PICT file; per the assessed vector (AV:L/PR:N/UI:R) the attack requires a victim to open or process the malicious file, with no network-facing or unauthenticated remote path. Publicly available exploit code exists, but there is no confirmed active exploitation (no CISA KEV entry), and the impact is bounded to information disclosure and denial of service rather than code execution.

RemediationAI

No vendor-released patch version was identified in the available intelligence, so the primary recommendation is to stop passing untrusted PICT files to affected FreeImage builds (danoli3 fork and upstream through 3.19.23) until a fixed release is published, and to monitor https://github.com/danoli3/FreeImage and the VulnCheck advisory for an updated tag. Where PICT support is not a hard requirement, the most effective compensating control is to disable or remove the PICT plugin entirely - delete or exclude the PluginPICT module from the build/plugin directory so the decoder is never registered (side effect: any legitimate legacy PICT assets will no longer load). If PICT decoding must remain available, run the decoder in a constrained worker process or sandbox with a restricted address space, drop privileges, and treat decoded output as untrusted; this bounds the leak of up to 64 KiB of heap data and converts crashes into contained worker failures, at the cost of additional process-isolation complexity and some throughput loss. Additional practical mitigations include rejecting PICT files at intake where the format is not expected, enforcing maximum file and image-dimension limits before decoding, and applying available memory-safety hardening (ASLR, guard pages/allocator hardening) to reduce the reliability of the out-of-bounds read - none of these eliminate the underlying missing rowBytes-vs-width validation, so they should be viewed as risk reduction rather than a fix. Because exploitation requires a victim to open or process a malicious file (AV:L, UI:R per the assessed CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H vector), user-awareness and email/file-sharing gateway filtering of PICT attachments provide meaningful defense against the client-side delivery path.

Affected VersionsENISA

FreeImage 0 ≤3.18.0
FreeImage 0 ≤3.19.23

Affected Packages

euvd freeimage no fix

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

The vulnerability is a classic CWE-125 out-of-bounds read rooted in the PICT image decoder shipped with FreeImage. In the 32-bit plane-conversion path of Unpack32Bits() (PluginPICT.cpp, roughly lines 605-650 in the referenced danoli3/FreeImage commit cc2bfc1), the decoder iterates over rows using a rowBytes value taken from the file-controlled PixMap structure, but never validates that rowBytes is large enough for the width/bit-depth it just parsed. When a crafted PICT supplies a truncated or undersized rowBytes, the conversion loop reads past the end of the allocated scanline buffer, exposing up to 64 KiB of adjacent heap contents that are copied into decoded pixel data, or triggering an access violation and process crash. The affected component is the PICT plugin itself, and the CPE entries cpe:2.3:a:danoli3:freeimage:*:*:*:*:*:*:*:* and cpe:2.3:a:freeimage:freeimage:*:*:*:*:*:*:*:* confirm that both the danoli3 fork and the upstream FreeImage product line through 3.19.23 are in scope for the intelligence provided.

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

File-parsing flaw triggered by a victim opening a crafted PICT, so AV:L and UI:R with PR:N; bounded heap over-read gives C:L, no integrity impact, and crash gives A:H.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

FreeImage (danoli3 fork) through 3.19.23 contains a heap out-of-bounds read vulnerability in Unpack32Bits() in PluginPICT.cpp because rowBytes is never checked against the file-controlled PixMap width. Attackers can supply a crafted PICT file with a truncated or undersized rowBytes to over-read up to 64 KiB of heap, leaking memory into decoded pixels or crashing the process.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
common open-source image library, but the specific danoli3 fork is less widespread
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-70968 CRITICAL POC
9.8 Jan 14

FreeImage 3.18.0 has a use-after-free in the TARGA plugin's loadRLE function. Processing a malicious TGA file can lead t

CVE-2023-47992 HIGH POC
8.8 Jan 09

An integer overflow vulnerability in FreeImageIO.cpp::_MemoryReadProc in FreeImage 3.18.0 allows attackers to obtain sen

CVE-2023-47994 HIGH POC
8.8 Jan 09

An integer overflow vulnerability in LoadPixelDataRLE4 function in PluginBMP.cpp in Freeimage 3.18.0 allows attackers to

CVE-2024-28582 HIGH POC
8.4 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28581 HIGH POC
8.4 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28580 HIGH POC
8.4 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28578 HIGH POC
8.4 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28566 HIGH POC
8.4 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28583 HIGH POC
7.8 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-28569 HIGH POC
7.8 Mar 20

Buffer Overflow vulnerability in open source FreeImage v.3.19.0 [r1909] allows a local attacker to execute arbitrary cod

CVE-2024-9029 HIGH POC
7.5 Sep 27

A flaw was found in the freeimage library. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, n

CVE-2019-12214 HIGH POC
7.5 May 20

In FreeImage 3.18.0, an out-of-bounds access occurs because of mishandling of the OpenJPEG j2k_read_ppm_v3 function in j

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy