Skip to content
Heist/ feed
Back to feed
Medium

OpenEXR: OpenEXRUtil SampleCountChannel row setter heap has an out-of-bounds write vulnerability

Type: advisorySources: OSV

OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. Versions prior to 3.2.10, 3.3.12 and 3.4.13 contain a heap out-of-bounds write in Imf_4_0::SampleCountChannel::set(int r, unsigned int newNumSamples[]). The row-based sample-count setter computes the target Y coordinate with dataWindow.min.x instead of dataWindow.min.y. For a valid deep image data window where min.x != min.y, a valid row index can be translated into an invalid Y coordinate, causing writes before the allocated _numSamples buffer. The vulnerability is reachable through the public OpenEXRUtil DeepImage API and can lead to heap corruption and process crashes. This issue has been fixed in versions 3.2.10, 3.3.12 and 3.4.13.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-55059
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 11:07 UTC · Revision 1

Source evidence

OpenEXR: OpenEXRUtil SampleCountChannel row setter heap has an out-of-bounds write vulnerability

core-osv · Original source

Published 25 Aug 2026, 00:16 UTC

OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. Versions prior to 3.2.10, 3.3.12 and 3.4.13 contain a heap out-of-bounds write in Imf_4_0::SampleCountChannel::set(int r, unsigned int newNumSamples[]). The row-based sample-count setter computes the target Y coordinate with dataWindow.min.x instead of dataWindow.min.y. For a valid deep image data window where min.x != min.y, a valid row index can be translated into an invalid Y coordinate, causing writes before the allocated _numSamples buffer. The vulnerability is reachable through the public OpenEXRUtil DeepImage API and can lead to heap corruption and process crashes. This issue has been fixed in versions 3.2.10, 3.3.12 and 3.4.13.

osv:CVE-2026-55059
Complete source record
{
  "id": "29243f245290285f7de7c1e9a25922b1f600fdd1c03618a603f42327ef6ca40c",
  "url": "https://osv.dev/vulnerability/CVE-2026-55059",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "OpenEXR: OpenEXRUtil SampleCountChannel row setter heap has an out-of-bounds write vulnerability",
    "summary": "OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. Versions prior to 3.2.10, 3.3.12 and 3.4.13 contain a heap out-of-bounds write in Imf_4_0::SampleCountChannel::set(int r, unsigned int newNumSamples[]). The row-based sample-count setter computes the target Y coordinate with dataWindow.min.x instead of dataWindow.min.y. For a valid deep image data window where min.x != min.y, a valid row index can be translated into an invalid Y coordinate, causing writes before the allocated _numSamples buffer. The vulnerability is reachable through the public OpenEXRUtil DeepImage API and can lead to heap corruption and process crashes. This issue has been fixed in versions 3.2.10, 3.3.12 and 3.4.13.",
    "evidence": "osv:CVE-2026-55059",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-55059",
      "aliases": [
        "CVE-2026-55059",
        "GHSA-54cp-3rq6-7mq8"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/academysoftwarefoundation/openexr",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "821935abdf05db156841b692a1deb8d6f48ffd0a"
                },
                {
                  "introduced": "c7d3eac70ccde2c4ed484c6638b83ba872f71464"
                },
                {
                  "fixed": "d1dcb760459e6cf9985b98deb118abc6de12f9bb"
                },
                {
                  "introduced": "20a65852895894434bea88613f6d29ac8e88bd6e"
                },
                {
                  "fixed": "c1194b2cb23a1bdf76fe5e756b22e8436b9a98c9"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.2.10"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "3.3.0"
                      },
                      {
                        "fixed": "3.3.12"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "3.4.0"
                      },
                      {
                        "fixed": "3.4.13"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.2.9-rc",
            "v3.2.9",
            "v3.3.11-rc3",
            "v3.3.11",
            "v3.4.13-rc2",
            "v3.4.13-rc",
            "v3.4.12",
            "v3.4.12-rc2",
            "v3.4.11-rc3",
            "v3.4.11",
            "v3.4.11-rc2",
            "v3.4.11-rc",
            "v3.4.10-rc",
            "v3.4.10",
            "v3.3.10-rc2",
            "v3.3.10",
            "v3.2.8-rc",
            "v3.2.8",
            "v3.3.10-rc",
            "v3.2.7-rc",
            "v3.2.7",
            "v3.3.9-rc2",
            "v3.3.9",
            "v3.4.9",
            "v3.3.9-rc",
            "v3.2.6-rc",
            "v3.2.6",
            "v3.3.8-rc",
            "v3.3.8",
            "v3.4.9-rc",
            "v3.4.8-rc",
            "v3.4.8",
            "v3.4.7",
            "v3.4.7-rc",
            "v3.4.6",
            "v3.4.6-rc",
            "v3.2.5-rc",
            "v3.2.5",
            "v3.3.7-rc4",
            "v3.3.7",
            "v3.4.5",
            "v3.4.5-rc",
            "v3.3.7-rc3",
            "v3.3.7-rc2",
            "v3.3.7-rc",
            "v3.3.6",
            "v3.4.4-rc2",
            "v3.4.4",
            "v3.4.4-rc",
            "v3.4.3-rc3",
            "v3.4.3",
            "v3.3.6-rc4",
            "v3.3.6-rc3",
            "v3.4.3-rc2",
            "v3.2.4-rc2",
            "v3.2.4",
            "v3.3.6-rc2",
            "v3.4.3-rc",
            "v3.3.6-rc",
            "v3.3.5",
            "v3.4.2-rc2",
            "v3.4.2",
            "v3.4.2-rc",
            "v3.4.1-rc2",
            "v3.4.1",
            "v3.4.1-rc",
            "v3.4.0",
            "v3.3.5-rc3",
            "v3.3.5-rc",
            "v3.3.4-rc",
            "v3.3.4",
            "v3.3.3-rc1",
            "v3.3.3",
            "v3.3.3-rc",
            "v3.3.2-rc4",
            "v3.3.2",
            "v3.3.2-rc3",
            "v3.3.2-rc2",
            "v3.3.2-rc",
            "v3.3.1-rc",
            "v3.3.1",
            "v3.3.0-rc2",
            "v3.3.0",
            "v3.2.4-rc",
            "v3.2.3-rc2",
            "v3.2.3",
            "v3.2.3-rc",
            "v3.2.2",
            "v3.2.2-rc2",
            "v3.2.2-rc",
            "v3.2.1-rc",
            "v3.2.1",
            "v3.2.0-rc4",
            "v3.2.0",
            "v3.2.0-rc3",
            "v3.2.0-rc2",
            "v3.2.0-rc",
            "v3.0.0-beta",
            "v2.5.0",
            "v2.4.0",
            "v2.4.0-beta.1",
            "v2.3.0",
            "v2.1.0",
            "v2.0.1",
            "v2.0.0.GM",
            "v2.0.0",
            "v1.7.1",
            "OPENEXR_1_0_4"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55059.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:34.793583224Z",
      "provider": "osv",
      "references": [
        "https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-54cp-3rq6-7mq8",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55059.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-55059"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-787"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55059.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-55059",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 501943,
  "published_at": "2026-08-25T00:16:01.747+00:00"
}