Найдена ошибка в библиотеке сжатия zlib, которая может проявляться как уязвимость в программах, использующих zlib. Уязвимость позволяет нападающему вызывать отказ
от обслуживании, собирать информацию, или выполнять произвольный код. 

Уязвимость найдена в алгоритме декомпрессии, используемом zlib. Если атакующий сможет
передать специально обработанный блок недопустимых сжатых данных к программе, которая использует zlib, попытка программы декомпрессировать обработанные данные может заставить подпрограммы zlib
разрушить внутренние структуры данных, обслуживаемые
malloc. 

Связано это с ошибкой программирования, которая позволяет сегментам динамически распределенной памяти освобождаться более одного раза (то есть » double-freed «). Когда функция inftrees.c:huft_build() принимает обработанные данные, она возвращает Z_MEM_ERROR к inftrees.c:inflate_trees_dynamic(). Когда последующий запрос сделан к infblock.c:inflate_blocks(), функция inflate_blocks попытается освободить данные второй раз. 

Поскольку эта ошибка нарушает правильное распределение и освобождение динамической памяти, она позволяет нападающим воздействовать на операции в программах, которые используют zlib. В большинстве случаях, это воздействие будет ограничено отказом
от обслуживания или утечкой информации, но также теоретически возможно вставить произвольный код в выполняемую программу. Этот код
будет выполнен с разрешениями уязвимой программы. 

На сегодняшний день нет информации об успешной эксплуатации этой ошибки. Неизвестно, возможно ли вообще, каким либо образом использовать этот дефект.

Ошибка затрагивает все программы, которые используют библиотеку zlib.



Оставить мнение