OpenEXR — это эталонная реализация и спецификация формата изображения EXR, широко используемого в киноиндустрии. В версиях до 3.2.11, с 3.3.0 по 3.3.12 и с 3.4.0 по 3.4.13 exrmultiview может выполнять запись за пределами выделения кучи, когда он объединяет два предоставленных злоумышленником индивидуально допустимых EXR-файла развертки, объединение данных которых не согласовано с подвыборкой канала одного представления. Утилита выделяет хранилище выборочных каналов с использованием усеченного значения Union_width/xSampling, затем считывает выборочные входные данные через Slice на основе смещенного объединенного окна, создавая запись за пределами кучи.
Триггером является обычная обработка общедоступных инструментов, такая как exrmultiview left A.exr right B.exr out.exr со специально созданными, но действительными входными данными, так что это не только проблема API или предварительных условий вызывающего абонента. Эта проблема исправлена в версиях 3.2.11, 3.3.13 и 3.4.14.
Показать оригинальное описание (EN)
OpenEXR is the reference implementation and specification for the EXR image format, widely used in the motion picture industry. In versions before 3.2.11, 3.3.0 through 3.3.12, and 3.4.0 through 3.4.13, exrmultiview can write past a heap allocation when it combines two attacker-supplied, individually valid scanline EXR files whose union dataWindow is not aligned to one view's channel subsampling. The utility allocates sampled channel storage using a truncated union_width / xSampling, then reads the sampled input through a Slice based on the misaligned union window, producing a heap out-of-bounds write. The trigger is normal public-tool processing, such as exrmultiview left A.exr right B.exr out.exr with crafted but valid inputs, so this is not solely an API or caller-precondition issue. This issue is fixed in versions 3.2.11, 3.3.13, and 3.4.14.
Характеристики атаки
Последствия
Строка CVSS v3.1