На днях была раскрыта критическая уязвимость в Unix-системе печати CUPS, затрагивающая множество Linux-систем по всему миру. Уязвимость способна привести к захвату компьютера через сеть или интернет при запуске задания на печать документов. Проблему усугубляет то, что обновления для устранения проблемы пока недоступны.
Исследователь безопасности Симоне Маргарителли, обнаруживший и сообщивший об этих уязвимостях, опубликовал их подробное описание. Уязвимости затрагивают большинство дистрибутивов Linux, некоторые версии BSD, а также, возможно, ChromeOS и Solaris. Критическая угроза исходит от компонента cups-browsed, который может быть использован злоумышленниками для захвата системы при старте задания на печать.
Для успешной эксплуатации злоумышленнику необходимо иметь доступ к сервису CUPS на порте 631 и дождаться запуска задания на печать на уязвимой системе. В случае недоступности этого порта, возможен вариант подмены zeroconf, mDNS или DNS-SD для атаки.
Всего исследователем было выявлено четыре уязвимости:
CVE-2024-47176 (cups-browsed до версии 2.0.1): неконтролируемый доступ к UDP-порту 631.
CVE-2024-47076 (libcupsfilters до версии 2.1b1): отсутствие проверки атрибутов при выполнении IPP-запросов.
CVE-2024-47175 (libppd): отсутствие проверки атрибутов при записи в PPD-файл.
CVE-2024-47177 (cups-filters до версии 2.0.1): возможность исполнения команд из данных PPD-файла.
Последовательное использование этих уязвимостей позволяет атакующему направить пакет на порт 631, заставить уязвимую систему обратиться к серверу злоумышленника, передать вредоносные данные, и, при запуске печати, выполнить зловредные команды.
Хотя угроза кажется значительной, для её эксплуатации требуется взаимодействие пользователя, который должен запустить задание на печать. По словам Маргарителли, уязвимость, вероятно, не достигает заявленного показателя в 9.9 из 10 по CVSS, как предполагалось ранее, однако всё ещё представляет угрозу.
По мнению основателя компании watchTowr Бенджамина Харриса, выявленные недостатки безопасности затрагивают лишь небольшой процент Linux-систем, доступных из интернета. Тем не менее, он рекомендует организациям проверить свои системы, чтобы избежать возможных инцидентов кибербезопасности.
Сам Маргарителли предлагает предпринять следующие шаги для защиты:
Отключить или удалить сервис cups-browsed;
Блокировать доступ к UDP-порту 631 и DNS-SD;
Обновить CUPS при выпуске исправлений.
Примечательно, что Маргарителли столкнулся с рядом трудностей при сообщении об уязвимости в CUPS. Несмотря на серьёзность обнаруженной проблемы, которую подтвердили такие компании, как Canonical и Red Hat, разработчики CUPS неохотно принимали информацию о найденных ошибках.
По словам Маргарителли, вместо быстрого устранения уязвимостей они предпочли спорить о том, влияют ли некоторые из них на безопасность, и проявляли снисходительное отношение к замечаниям исследователя. Маргарителли считает эту ситуацию примером того, как не следует обращаться с разглашением уязвимостей, и подчёркивает ответственность разработчиков программного обеспечения, которое работает более 20 лет на множестве устройств по всему миру.
Пока необходимые патчи не выпущены, рекомендуется принять предлагаемые меры для минимизации рисков.