psd-tools — это пакет Python для работы с PSD-файлами Adobe Photoshop. До версии 1.12.2, когда PSD-файл содержит искаженные данные изображения, сжатые с помощью RLE (например, литеральный прогон, выходящий за пределы ожидаемого размера строки), decode_rle() вызывает ошибку ValueError, которая распространялась до самого пользователя, приводя к сбою psd.composite() и экспорта psd-tools. decompress() уже имел запасной вариант, который заменял ошибочные каналы черными пикселями, когда результат равен None, но он так и не сработал, поскольку ValueError из decode_rle() не был обнаружен. Исправление в версии 1.12.2 оборачивает вызов decode_rle() в попытку/исключение, поэтому существующий резервный вариант корректно обрабатывает ошибку.
Показать оригинальное описание (EN)
psd-tools is a Python package for working with Adobe Photoshop PSD files. Prior to version 1.12.2, when a PSD file contains malformed RLE-compressed image data (e.g. a literal run that extends past the expected row size), decode_rle() raises ValueError which propagated all the way to the user, crashing psd.composite() and psd-tools export. decompress() already had a fallback that replaces failed channels with black pixels when result is None, but it never triggered because the ValueError from decode_rle() was not caught. The fix in version 1.12.2 wraps the decode_rle() call in a try/except so the existing fallback handles the error gracefully.
Характеристики атаки
Последствия
Строка CVSS v4.0