{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "3.2.10"
              },
              {
                "introduced": "3.3.0"
              },
              {
                "fixed": "3.3.12"
              },
              {
                "introduced": "3.4.0"
              },
              {
                "fixed": "3.4.13"
              }
            ],
            "source": "AFFECTED_FIELD"
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "821935abdf05db156841b692a1deb8d6f48ffd0a"
            },
            {
              "introduced": "c7d3eac70ccde2c4ed484c6638b83ba872f71464"
            },
            {
              "fixed": "d1dcb760459e6cf9985b98deb118abc6de12f9bb"
            },
            {
              "introduced": "20a65852895894434bea88613f6d29ac8e88bd6e"
            },
            {
              "fixed": "c1194b2cb23a1bdf76fe5e756b22e8436b9a98c9"
            }
          ],
          "repo": "https://github.com/academysoftwarefoundation/openexr",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-mff9-68x3-h8rh"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-190",
      "CWE-400",
      "CWE-835"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55373.json"
  },
  "details": "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 an infinite-loop vulnerability in SampleCountChannel. The helper roundListSizeUp() rounds a sample-list size up to the next power of two using repeated unsigned left shifts, which terminates for normal values but fails for UINT_MAX: the sequence reaches 0x80000000, and the next left shift wraps the 32-bit value to 0. Because 0 remains less than UINT_MAX, the loop never progresses and never exits. The bug is reachable through public OpenEXRUtil APIs, either by editing the sample-count buffer through SampleCountChannel::Edit (whose destructor calls endEdit()) or by calling SampleCountChannel::set(x, y, UINT_MAX) on a valid pixel. This issue has been fixed in versions 3.2.10, 3.3.12, and 3.4.13.",
  "id": "CVE-2026-55373",
  "modified": "2026-08-27T11:31:12.090114779Z",
  "published": "2026-08-25T00:39:45.185Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-mff9-68x3-h8rh"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55373.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-55373"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "OpenEXR: OpenEXRUtil SampleCountChannel endEdit() can loop forever on UINT_MAX sample counts"
}