CVE-2026-116723 in Fltkinfo

Summary

by MITRE • 10/27/2026

FLTK through 1.4.5 contains a stack-based buffer overflow vulnerability in Fl_BMP_Image::load_bmp_() that allows attackers to corrupt stack memory by supplying an oversized BMP colors_used field. Attackers can craft BMP or ICO files with colors_used above 256 to overflow the 768-byte colormap array, causing crashes or potential code execution.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/27/2026

The FLTK library, a widely used cross-platform C++ GUI toolkit for building graphical user interfaces, contains a critical stack-based buffer overflow vulnerability in its BMP image loading functionality through version 1.4.5. This flaw resides specifically within the Fl_BMP_Image::load_bmp_() function, which is responsible for parsing and rendering Bitmap (BMP) and Icon (ICO) files. The root cause of this vulnerability is an insufficient validation of input data regarding the number of colors specified in the image header. When a malicious actor supplies a crafted BMP or ICO file where the colors_used field exceeds 256, the application fails to properly bound-check this value against the allocated memory size for the colormap array. This lack of rigorous boundary checking allows an attacker to write beyond the limits of the stack-allocated buffer, leading to direct corruption of adjacent stack memory structures.

From a technical perspective, the vulnerability exploits the fixed-size nature of the 768-byte colormap array used by FLTK to store color information for indexed images. In standard BMP formats, particularly those with lower bit depths like 4-bit or 8-bit palettes, the number of colors is typically constrained well below this limit. However, because the software does not enforce a strict upper bound on the colors_used field before copying data into the colormap array, an oversized value triggers a buffer overflow condition. This operation overwrites critical stack frames, including return addresses and saved register values. Such memory corruption can lead to immediate application crashes due to segmentation faults or access violations when the program attempts to execute invalid instructions. More severely, if the attacker carefully crafts the payload to overwrite specific control flow data on the stack, they may achieve arbitrary code execution with the privileges of the user running the FLTK-based application.

The operational impact of this vulnerability is significant for any software utilizing FLTK that processes untrusted image inputs. Attackers can distribute maliciously crafted BMP or ICO files via email attachments, web downloads, or embedded in other documents to trigger the exploit when a victim opens the file within an affected application. The ability to execute arbitrary code means that attackers could potentially install malware, steal sensitive data, escalate privileges, or establish persistent access on compromised systems. This risk is particularly acute for applications such as image viewers, editors, or any GUI-based tool where users are expected to open files from external sources without rigorous pre-validation of file contents.

This vulnerability aligns with Common Weakness Enumeration (CWE) categories including CWE-120: Buffer Copy without Checking Size of Input and CWE-787: Out-of-bounds Write on a Stack, Heap, or other Memory Region. In the context of the MITRE ATT&CK framework, this flaw facilitates initial access through lure-based techniques where malicious files are used to exploit software vulnerabilities, potentially leading to command execution as described in tactics related to exploitation for privilege escalation or persistence. To mitigate these risks, developers should immediately update FLTK to version 1.4.6 or later, which includes patches addressing the input validation logic. For applications that cannot be updated instantly, implementing strict file type verification and validating image headers before passing them to the library can reduce exposure. Additionally, enabling compiler security features such as stack protectors and address space layout randomization provides defense-in-depth measures that make exploitation significantly more difficult for attackers seeking to leverage this memory corruption flaw.

Responsible

VulnCheck

Reservation

10/26/2026

Disclosure

10/27/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!