Описание
Уязвимость библиотеки libpng связана с передачей указателя, полученного из функций png_get_PLTE, png_get_tRNS или png_get_hIST, обратно в соответствующую функцию установки значений для той же пары png_struct/png_info, что приводит к чтению из освобождённой памяти и копированию её содержимого в буфер замены. Функция установки значений освобождает внутренний буфер перед копированием из полученного от вызывающего объекта указателя, который впоследствии становится недействительным. Освобождённая область может содержать устаревшие данные, что приводит к незаметно повреждённым метаданным фрагментов, или данные из последующих операций выделения памяти в куче, что приводит к утечке несвязанного содержимого кучи в структуру фрагмента.
Вендор
Наименование ПО
Версия ПО
Тип ПО
Операционные системы и аппаратные платформы
Уровень опасности уязвимости
Возможные меры по устранению уязвимости
Статус уязвимости
Наличие эксплойта
Информация об устранении
Ссылки на источники
Идентификаторы других систем описаний уязвимостей
- CVE
EPSS
5.1 Medium
CVSS3
3.6 Low
CVSS2
Связанные уязвимости
LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From 1.0.9 to before 1.6.57, passing a pointer obtained from png_get_PLTE, png_get_tRNS, or png_get_hIST back into the corresponding setter on the same png_struct/png_info pair causes the setter to read from freed memory and copy its contents into the replacement buffer. The setter frees the internal buffer before copying from the caller-supplied pointer, which now dangles. The freed region may contain stale data (producing silently corrupted chunk metadata) or data from subsequent heap allocations (leaking unrelated heap contents into the chunk struct). This vulnerability is fixed in 1.6.57.
LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From 1.0.9 to before 1.6.57, passing a pointer obtained from png_get_PLTE, png_get_tRNS, or png_get_hIST back into the corresponding setter on the same png_struct/png_info pair causes the setter to read from freed memory and copy its contents into the replacement buffer. The setter frees the internal buffer before copying from the caller-supplied pointer, which now dangles. The freed region may contain stale data (producing silently corrupted chunk metadata) or data from subsequent heap allocations (leaking unrelated heap contents into the chunk struct). This vulnerability is fixed in 1.6.57.
EPSS
5.1 Medium
CVSS3
3.6 Low
CVSS2