CVE-2026-39886 in OpenEXR
Zusammenfassung
von VulDB • 15.05.2026
OpenEXR stellt die Spezifikation und die Referenzimplementierung des EXR-Dateiformats bereit, einem Bildspeicherformat für die Filmindustrie. Die Versionen 3.4.0 bis 3.4.9 weisen eine Schwachstelle mit einem Überlauf einer vorzeichenbehafteten ganzen Zahl (signed integer overflow) im HTJ2K (High-Throughput JPEG 2000)-Dekomprimierungspfad von OpenEXR auf. Die Funktion `ht_undo_impl()` in `src/lib/OpenEXRCore/internal_ht.cpp` akkumuliert einen Wert für Bytes pro Zeile (`bpl`) unter Verwendung eines 32-Bit vorzeichenbehafteten Integers ohne Überlaufschutz. Eine speziell angefertigte EXR-Datei mit 16.385 FLOAT-Kanälen bei der maximalen HTJ2K-Breite von 32.767 führt dazu, dass `bpl` den `INT_MAX`-Wert überläuft und undefiniertes Verhalten erzeugt, was durch UBSan bestätigt wurde. Auf einem Host mit einer permissiven Speicherzuweisung, bei dem die erforderliche ~64 GB große Zuweisung erfolgreich ist, würde der umgebrochene negative `bpl`-Wert anschließend als Zeigerinkrement pro Scanline verwendet, was zu einem Heap-Out-of-Bounds-Write führen würde. Auf einem speicherbeschränkten Host schlägt die Zuweisung fehl, bevor `ht_undo_impl()` aufgerufen wird. Dies ist der zweite distincte Integer-Overflow in `ht_undo_impl()`. CVE-2026-34545 behandelte einen anderen Überlauf in derselben Funktion — den `int16_t p` Pixel-Loop-Zähler in Zeile ~302, der überläuft, wenn über Kanäle iteriert wird, deren `width` 32.767 überschreitet. Die Korrektur für CVE-2026-34545 berührte den `int bpl`-Akkumulator in Zeile 211 nicht, der Gegenstand dieser Advisory ist. Der `bpl`-Akkumulator wurde auch durch keine der 8 Advisories im Release-Batch v3.4.9 vom 2026-04-05 adressiert. Dieser Befund ist strukturell identisch mit CVE-2026-34588 (PIZ `wcount*nx`-Überlauf in `internal_piz.c`) und sollte mit demselben Muster behoben werden. Die Korrektur für CVE-2026-34588 berührte `internal_ht.cpp` nicht. Version 3.4.10 enthält eine Korrektur, die die Schwachstelle in `internal_ht.cpp` adressiert.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.