Вышли исправления для GNU patch, закрывающие две уязвимости средней степени опасности

GNU InetUtils

Разработчики GNU выпустили обновление утилиты patch, устраняющее две уязвимости, связанные с некорректной обработкой специально сформированных diff-файлов. Ошибки, получившие идентификаторы CVE-2026-56288 и CVE-2026-56289, могут быть использованы для осуществления атак типа "отказ в обслуживании" (DoS) как на локальных системах, так и при автоматизированной обработке патчей. Обе проблемы исправлены в соответствующих коммитах репозитория проекта.

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

Первая уязвимость, CVE-2026-56288, связана с разыменованием нулевого указателя (NULL pointer dereference) при обработке патчей в формате unified-diff. Внутренние структуры данных, отвечающие за хранение фрагментов изменений (hunk), искажаются из-за некорректной обработки повторяющихся маркеров конца файла. В определённый момент утилита передаёт нулевой указатель на функцию fwrite, что приводит к аварийному завершению процесса. Злоумышленник может вызвать такое состояние, предоставив вредоносный файл патча.

Вторая уязвимость, CVE-2026-56289, заключается в недостаточной проверке смещений строк внутри фрагментов изменений. Если в diff-файле указано чрезвычайно большое значение номера строки, утилита входит в бесконечный цикл обработки при попытке найти нужную позицию. В результате процесс потребляет все доступные ресурсы процессора, перестаёт отвечать и требует принудительного завершения. Атака также реализуется через вредоносный файл патча.

Обеим уязвимостям присвоен средний уровень опасности по шкале CVSS 4.0 - 4,6 балла. Вектор атаки требует локального доступа к системе, низкой сложности эксплуатации и взаимодействия с пользователем (например, применения патча из ненадёжного источника). Под удар попадают все версии GNU patch начиная с 0 до 2.8.0 включительно.

Как поясняют в проекте GNU, исправления уже доступны в репозитории. Для версии 2.8.0 достаточно загрузить обновлённый исходный код и пересобрать утилиту. Дистрибутивы операционных систем, основанные на GNU patch, должны выпустить обновления в ближайшее время. Пользователям рекомендуется установить свежие пакеты, как только они станут доступны.

Хотя описанные проблемы не позволяют удалённо выполнять код или повышать привилегии, они создают угрозу для сред, где patch используется в автоматических процессах - при развёртывании обновлений ПО, в системах непрерывной интеграции (CI/CD) и в скриптах сопровождения. Злоумышленник, имеющий возможность подменить файл патча, может вызвать отказ в обслуживании на критически важном узле.

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

Ситуация с GNU patch напоминает о давней проблеме: даже утилиты, существующие десятилетиями, могут содержать ошибки обработки входных данных, способные привести к отказу в обслуживании. Регулярное обновление инструментов и внимательное отношение к источникам патчей остаются ключевыми мерами защиты для администраторов и разработчиков.

Ссылки

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