Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-26540

CVE-2024-26540: CImg Buffer Overflow Vulnerability

CVE-2024-26540 is a heap-based buffer overflow flaw in CImg library before version 3.3.3 that can be triggered via crafted files. This article covers the technical details, affected versions, security impact, and mitigation.

Updated:

CVE-2024-26540 Overview

CVE-2024-26540 is a heap-based buffer overflow [CWE-122] in the CImg image processing library before version 3.3.3. The flaw resides in the cimg_library::CImg<unsigned char>::_load_analyze function, which parses Analyze-format medical imaging files. An attacker can trigger the overflow by supplying a crafted file to any application that links against a vulnerable version of CImg. Successful exploitation corrupts heap memory in the process handling the file, enabling arbitrary code execution in the context of the victim user.

Critical Impact

A crafted Analyze image file processed by CImg before 3.3.3 corrupts the heap and can lead to arbitrary code execution on the local host.

Affected Products

  • CImg library versions prior to 3.3.3
  • Applications that statically or dynamically link the vulnerable CImg.h header
  • Downstream tools using CImg for Analyze (.hdr/.img) medical image parsing

Discovery Timeline

  • 2024-03-15 - CVE-2024-26540 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2024-26540

Vulnerability Analysis

The vulnerability exists in the _load_analyze routine of the CImg template library, a single-header C++ image processing framework. This routine parses the Analyze 7.5 file format used in neuroimaging, which stores volume metadata in a header structure and pixel data in a companion file. When the routine reads attacker-controlled header fields describing image dimensions and data type, it fails to correctly bound the size of the allocated heap buffer against the number of bytes subsequently copied. The mismatch produces an out-of-bounds write onto adjacent heap memory. Because CImg is a header-only library included directly into consumer applications, the vulnerability propagates into every binary that compiles against a pre-3.3.3 version.

Root Cause

The root cause is insufficient validation of header-supplied dimension and data-type values in _load_analyze prior to heap allocation and read operations. The size used for allocation does not consistently match the size used when copying pixel data, permitting a controlled heap overflow when the file describes a smaller buffer than the payload actually written.

Attack Vector

Exploitation requires local file processing and user interaction: a victim must open or import a crafted Analyze image using an application built on CImg. No privileges are required to author the malicious file. The scope is unchanged, but confidentiality, integrity, and availability of the invoking process are all at risk once the heap is corrupted. See the GitHub Issue Report for the maintainer discussion and reproducer references.

Detection Methods for CVE-2024-26540

Indicators of Compromise

  • Unexpected crashes, SIGSEGV, or heap corruption aborts in processes that load Analyze (.hdr, .img, .nii) files
  • Presence of CImg.h versions earlier than 3.3.3 in build artifacts or vendored dependencies
  • Analyze header files with dimension fields inconsistent with the paired image data size

Detection Strategies

  • Perform software composition analysis to identify applications shipping CImg.h below 3.3.3
  • Inspect Analyze headers for anomalous dim[], datatype, and bitpix fields before passing files to downstream tools
  • Enable heap hardening instrumentation such as AddressSanitizer or glibc MALLOC_CHECK_ during triage to surface out-of-bounds writes

Monitoring Recommendations

  • Log and alert on abnormal terminations of image processing services that consume user-supplied files
  • Track file provenance for medical imaging pipelines and flag Analyze files originating from untrusted sources
  • Monitor endpoint telemetry for child processes spawned by image viewers immediately after file open events

How to Mitigate CVE-2024-26540

Immediate Actions Required

  • Upgrade CImg to version 3.3.3 or later and rebuild all dependent binaries
  • Inventory downstream applications that embed CImg and prioritize patching those exposed to untrusted files
  • Restrict processing of Analyze-format files to trusted sources until remediation is confirmed

Patch Information

Upgrade to CImg 3.3.3 or later. Because CImg is a header-only library, updating the vendored CImg.h is not sufficient at runtime; every consuming application must be recompiled and redeployed with the patched header. Refer to the GitHub Issue Report for upstream remediation details.

Workarounds

  • Disable or remove Analyze format loading in applications that do not require it
  • Sandbox image parsing in a restricted process with seccomp, AppArmor, or equivalent controls to limit blast radius
  • Validate Analyze headers against expected dimension and datatype constraints before invoking _load_analyze
bash
# Verify the CImg version present in your source tree
grep -R "cimg_version" ./ --include=CImg.h
# Expect a value >= 337 (representing 3.3.7) or the patched 3.3.3 series

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.