CVE-2025-48074

5.5 MEDIUM

📋 TL;DR

OpenEXR 3.3.2 has a vulnerability where it trusts unvalidated dataWindow size values from file headers, allowing malicious EXR files to trigger excessive memory allocation. This can cause performance degradation or denial of service in applications processing these files. Anyone using OpenEXR 3.3.2 to parse EXR files is affected.

💻 Affected Systems

Products:
  • OpenEXR
Versions: Version 3.3.2 specifically
Operating Systems: All platforms where OpenEXR runs
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using OpenEXR library to parse EXR files is vulnerable. This includes various image processing, VFX, and animation software.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Application crashes or becomes unresponsive due to memory exhaustion when processing a malicious EXR file, potentially causing denial of service in critical image processing pipelines.

🟠

Likely Case

Performance degradation and increased memory usage when processing specially crafted EXR files, leading to slower processing times and potential application instability.

🟢

If Mitigated

With proper input validation and memory limits, the impact is limited to rejected files or controlled memory usage without system-wide effects.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Proof of concept available in ShielderSec repository. Exploitation requires user or application to open a malicious EXR file.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.3.3

Vendor Advisory: https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-x22w-82jp-8rvf

Restart Required: No

Instructions:

1. Download OpenEXR 3.3.3 from official repository. 2. Compile and install following build instructions. 3. Recompile any applications using OpenEXR against the new version. 4. Test with sample EXR files to ensure compatibility.

🔧 Temporary Workarounds

Input validation wrapper

all

Implement custom validation of dataWindow values before passing to OpenEXR

Implement bounds checking in application code before calling OpenEXR parsing functions

Memory limit enforcement

specific

Set memory limits on processes that parse EXR files

ulimit -v [memory_limit_in_kb] for Linux/macOS
Set-ProcessMitigation for Windows

🧯 If You Can't Patch

  • Implement strict file type validation and only accept EXR files from trusted sources
  • Run OpenEXR processes in isolated containers with memory limits

🔍 How to Verify

Check if Vulnerable:

Check OpenEXR version: exrheader --version or check library version in application

Check Version:

exrheader --version 2>&1 | grep -i version

Verify Fix Applied:

Verify version is 3.3.3 or later and test with known malicious EXR files from PoC repository

📡 Detection & Monitoring

Log Indicators:

  • High memory usage spikes during EXR file processing
  • Application crashes or hangs when opening EXR files
  • Failed EXR parsing with unusual error messages

Network Indicators:

  • Unusual EXR file downloads from untrusted sources
  • Large EXR files with suspicious metadata

SIEM Query:

process:memory_usage > threshold AND process_name:openexr_related OR file_extension:.exr AND file_size:unusual

🔗 References

📤 Share & Export