Опасная уязвимость в ImageMagick позволяет злоумышленникам выполнять удаленный код через имена файлов

vulnerability

Обнаружена серьезная уязвимость в популярной библиотеке обработки изображений ImageMagick, которая позволяет злоумышленникам выполнять произвольный код на уязвимых системах. Проблема, зарегистрированная как CVE-2025-53101, связана с ошибкой обработки шаблонов имен файлов в модуле MagickCore/image.c. Уязвимость классифицируется как высокоопасная с оценкой 8.1 по шкале CVSS v3.1 и затрагивает версии библиотеки до 7.1.1-47 и 6.9.13-25. Разработчики уже выпустили исправления в версиях 7.1.2-0 и 6.9.13-26, поэтому пользователям настоятельно рекомендуется обновить программное обеспечение как можно скорее.

Детали уязвимости

Суть уязвимости заключается в некорректной обработке специальных шаблонов формата в именах файлов, таких как %d, %o и %x. Функция InterpretImageFilename(), ответственная за обработку таких шаблонов, использует фиксированное смещение для расчета позиции записи, предполагая, что каждый шаблон занимает четыре символа. Однако если в имени файла подряд идут несколько таких шаблонов (например, %d%d), происходит ошибка вычисления, и указатель выходит за границы буфера, что приводит к переполнению стека. Это создает условия для выполнения произвольного кода, если злоумышленник сможет передать специально сформированное имя файла в утилиту magick mogrify.

Эксплуатация уязвимости не требует сложных условий - достаточно наличия возможности запуска команды magick на целевой системе. Атакующий может передать вредоносный шаблон имени файла, который вызовет повреждение стека и перенаправит выполнение программы на вредоносный код. Хотя публичных эксплойтов пока не обнаружено, тестовые запуски с использованием инструмента AddressSanitizer подтверждают, что уязвимость легко воспроизводится и действительно приводит к переполнению буфера. Например, на системе Ubuntu 22.04 LTS с компилятором gcc 11.4.0 команда magick mogrify %d%d стабильно вызывает аварийное завершение работы.

Разработчики ImageMagick устранили проблему, переписав логику расчета смещения - теперь оно вычисляется динамически на основе реальной длины шаблона и количества записанных данных. Кроме того, в код были добавлены проверки границ буфера, а также механизмы прерывания обработки в случае ошибок форматирования или попыток записи за пределами допустимого диапазона.

Для защиты от потенциальных атак администраторам следует немедленно обновить ImageMagick до последних версий и проверить все системы на наличие уязвимых сборок. Дополнительно рекомендуется ограничить обработку файлов из ненадежных источников и включить мониторинг подозрительных вызовов утилит ImageMagick, особенно с нестандартными шаблонами имен. Если полное обновление невозможно, временной мерой может стать ограничение прав доступа к командам magick или использование фильтрации входных данных, чтобы исключить возможность передачи злонамеренных шаблонов.

Ссылки

Комментарии: 0