UNKNOWNCVE-2026-34380

OpenEXR hat einen signierten Integer-Überlauf (undefined behavior) in undo_pxr24_impl, der einen Bounds-Check-Bypass in der PXR24-Dekomprimierung ermöglichen kann

Plattform

c

Komponente

openexr

Behoben in

3.2.7

OpenEXR bietet die Spezifikation und die Referenzimplementierung des EXR-Dateiformats, einem Bildspeicherformat für die Filmindustrie. Von 3.2.0 bis vor 3.2.7, 3.3.9 und 3.4.9 existiert ein signierter Integer-Überlauf in undo_pxr24_impl() in src/lib/OpenEXRCore/internal_pxr24.c in Zeile 377. Der Ausdruck (uint64_t)(w * 3) berechnet w * 3 als einen signierten 32-Bit-Integer, bevor er in uint64_t umgewandelt wird. Wenn w groß ist, stellt diese Multiplikation ein undefined behavior gemäß dem C-Standard dar. In getesteten Builds (clang/gcc ohne Sanitizer) tritt häufig ein Two's-Complement-Wraparound auf, und für bestimmte Werte von w ist das umgewandelte Ergebnis ein kleiner positiver Integer, der dazu führen kann, dass der anschließende Bounds-Check fälschlicherweise besteht. Wenn der Check umgangen wird, setzt die Dekomprimierungsschleife das Schreiben von Pixeldaten über dout fort, wodurch möglicherweise weit über den zugewiesenen Ausgabepuffer hinaus geschrieben wird. Diese Schwachstelle ist in 3.2.7, 3.3.9 und 3.4.9 behoben.

So beheben

Kein offizieller Patch verfügbar. Prüfe auf Workarounds oder überwache auf Updates.

Abhängigkeiten automatisch überwachen

Werde benachrichtigt, wenn neue Schwachstellen deine Projekte betreffen. Für immer kostenlos.

Kostenlos starten