OpenEXR hat einen fehl ausgerichteten Schreibvorgang in LossyDctDecoder_execute, der zu undefiniertem Verhalten führt (DWA/DWAB Dekompression)
Plattform
c
Komponente
openexr
Behoben in
3.2.7
OpenEXR stellt die Spezifikation und die Referenzimplementierung des EXR-Dateiformats bereit, einem Bildspeicherformat für die Filmindustrie. Von 3.2.0 bis vor 3.2.7, 3.3.9 und 3.4.9 besteht eine Speicherfehlerschreib-Schwachstelle in LossyDctDecoder_execute() in src/lib/OpenEXRCore/internal_dwa_decoder.h:749. Beim Dekodieren einer DWA- oder DWAB-komprimierten EXR-Datei, die einen FLOAT-Typ-Kanal enthält, führt der Dekodierer eine In-Place-HALF→FLOAT-Konvertierung durch, indem ein nicht ausgerichteter uint8_t * Zeiger auf float * gecastet und darüber geschrieben wird. Da der Zeilenpuffer möglicherweise nicht 4-Byte-ausgerichtet ist, handelt es sich hierbei um undefiniertes Verhalten gemäß dem C-Standard und es stürzt sofort auf Architekturen ab, die die Ausrichtung erzwingen (ARM, RISC-V usw.). Auf x86 wird es zur Laufzeit stillschweigend toleriert, bleibt aber über Compileroptimierungen, die eine ausgerichtete Zugriffsannahme treffen, ausnutzbar. Diese Schwachstelle wurde 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