Description
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.
Published: 2026-10-15
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information disclosure
Action: Apply Patch
AI Analysis

Impact

FreeImage Library, in its 3.19.23 release, contains a heap out‑of‑bounds read in the Unpack32Bits function of PluginPICT.cpp. Because the rowBytes field is not validated against the PICT file’s PixMap width, a crafted image can cause the routine to read up to 64 KiB beyond the intended buffer. The over‑read may expose arbitrary heap contents to the contents of the decoded pixel array, or cause the process to crash, resulting in potential information disclosure or denial of service. This weakness corresponds to CWE‑125.

Affected Systems

The vulnerability applies to the open‑source FreeImage project, specifically the danoli3 fork, and versions up to and including 3.19.23. Applications that incorporate this library for processing PICT images are affected.

Risk and Exploitability

The CVSS score of 6.9 indicates a moderate impact, while the EPSS score of less than 1 % suggests a low likelihood of widespread exploitation at this time. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the attacker to supply a malicious PICT file that is processed by the vulnerable library; local or remote exploitation is possible if an application trusts user-supplied image files.

Generated by OpenCVE AI on October 16, 2026 at 17:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to FreeImage 3.20.0 or later, which removes the unchecked bounds check in Unpack32Bits.
  • If upgrading is not immediately feasible, limit image processing to trusted sources or validate the PICT file’s rowBytes against its declared width before calling the library.
  • Run all image‑processing code in a sandboxed environment to contain potential memory disclosure or denial‑of‑service attacks.

Generated by OpenCVE AI on October 16, 2026 at 17:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 26 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 15 Oct 2026 19:00:00 +0000

Type Values Removed Values Added
Description 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.
Title FreeImage through 3.19.23 Heap Out-of-Bounds Read via PICT Unpack32Bits
First Time appeared Freeimage Project
Freeimage Project freeimage
Weaknesses CWE-125
CPEs cpe:2.3:a:freeimage_project:freeimage:*:*:*:*:*:*:*:*
Vendors & Products Freeimage Project
Freeimage Project freeimage
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H'}

cvssV4_0

{'score': 6.9, 'vector': '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'}


Subscriptions

Freeimage Project Freeimage
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-26T14:01:27.637Z

Reserved: 2026-10-15T17:03:59.577Z

Link: CVE-2026-111149

cve-icon Vulnrichment

Updated: 2026-10-26T14:01:23.090Z

cve-icon NVD

Status : Deferred

Published: 2026-10-15T19:17:29.503

Modified: 2026-10-26T15:16:37.510

Link: CVE-2026-111149

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T20:15:05Z

Weaknesses