← Back to CVE Explorer

CVE-2026-34380

Full vulnerability record from the local CVENow database.

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 signed integer overflow exists in undo_pxr24_impl() in src/lib/OpenEXRCore/internal_pxr24.c at line 377. The expression (uint64_t)(w * 3) computes w * 3 as a signed 32-bit integer before casting to uint64_t. When w is large, this multiplication constitutes undefined behavior under the C standard. On tested builds (clang/gcc without sanitizers), two's-complement wraparound commonly occurs, and for specific values of w the wrapped result is a small positive integer, which may allow the subsequent bounds check to pass incorrectly. If the check is bypassed, the decoding loop proceeds to write pixel data through dout, potentially extending far beyond the allocated output buffer. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9.

Severity
MEDIUM
CVSS score
5.9 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-06 16:16:35.400000
Last modified
2026-10-26 21:10:00.170000
View original CVE JSON
{
  "id": "CVE-2026-34380",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-06T16:16:35.400",
  "lastModified": "2026-10-26T21:10:00.170",
  "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 signed integer overflow exists in undo_pxr24_impl() in src/lib/OpenEXRCore/internal_pxr24.c at line 377. The expression (uint64_t)(w * 3) computes w * 3 as a signed 32-bit integer before casting to uint64_t. When w is large, this multiplication constitutes undefined behavior under the C standard. On tested builds (clang/gcc without sanitizers), two's-complement wraparound commonly occurs, and for specific values of w the wrapped result is a small positive integer, which may allow the subsequent bounds check to pass incorrectly. If the check is bypassed, the decoding loop proceeds to write pixel data through dout, potentially extending far beyond the allocated output buffer. This vulnerability is fixed in 3.2.7, 3.3.9, and 3.4.9."
    },
    {
      "lang": "es",
      "value": "OpenEXR proporciona la especificación e implementación de referencia del formato de archivo EXR, un formato de almacenamiento de imágenes para la industria cinematográfica. Desde la versión 3.2.0 hasta antes de la 3.2.7, 3.3.9 y 3.4.9, existe un desbordamiento de entero con signo en undo_pxr24_impl() en src/lib/OpenEXRCore/internal_pxr24.c en la línea 377. La expresión (uint64_t)(w * 3) calcula w * 3 como un entero con signo de 32 bits antes de convertirlo a uint64_t. Cuando w es grande, esta multiplicación constituye un comportamiento indefinido según el estándar C. En compilaciones probadas (clang/gcc sin sanitizers), comúnmente ocurre un desbordamiento por complemento a dos, y para valores específicos de w el resultado desbordado es un entero positivo pequeño, lo que puede permitir que la comprobación de límites subsiguiente pase incorrectamente. Si la comprobación es eludida, el bucle de decodificación procede a escribir datos de píxeles a través de dout, extendiéndose potencialmente mucho más allá del búfer de salida asignado. Esta vulnerabilidad se corrige en las versiones 3.2.7, 3.3.9 y 3.4.9."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "AcademySoftwareFoundation",
          "product": "openexr",
          "versions": [
            {
              "version": ">= 3.2.0, < 3.2.7",
              "status": "affected"
            },
            {
              "version": ">= 3.3.0, < 3.3.9",
              "status": "affected"
            },
            {
              "version": ">= 3.4.0, < 3.4.9",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:H",
          "baseScore": 5.9,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "LOW",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.6,
        "impactScore": 4.2
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-04-07T14:12:54.907799Z",
          "id": "CVE-2026-34380",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-190"
        },
        {
          "lang": "en",
          "value": "CWE-787"
        }
      ]
    }
  ],
  "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-q3v8-hw4m-59w5",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Vendor Advisory"
      ]
    }
  ]
}