Если за последние несколько дней вы хоть раз открывали социальные сети, посвященные Linux, вы видели публикации о серьезной уязвимости в системе безопасности Linux. Уязвимость удаленного выполнения кода, затрагивающая стек печати CUPS, используемый в большинстве основных настольных дистрибутивов Linux, включая Ubuntu
С оценкой серьезности в 9,9 баллов она находится в списке самых серьезных уязвимостей.
Уязвимость безопасности CUPS
Canonical объясняет в своем блоге безопасности: По своей сути уязвимость эксплуатируется путем обмана CUPS с целью создания контролируемого злоумышленником файла PPD (PostScript Printer Description) для принтера, содержащего произвольную команду.
Когда следующее задание печати будет отправлено на данный принтер, команда будет выполнена от имени пользователя lp
(именно от этого пользователя работает демон CUPS, и, если бы не другие уязвимости, у него не было бы повышенных привилегий).
Многие уязвимости в системе безопасности, о которых пишут, часто затрагивают конкретное оборудование или для их использования требуется физический доступ к вашей машине.
Вы можете подумать: «Ничего страшного! Никто не сможет обмануть службу печати на моем компьютере и заставить ее делать то, о чем я не знаю.
Но Симоне Маргарителли (Simone Margaritelli), который обнаружил этот недостаток и которому пришлось бороться за то, чтобы его приняли всерьез, объясняет в подробной статье на своем блоге, что это можно сделать невидимо, удаленно и без аутентификации.
Любой злоумышленник отправляет UDP-пакет на порт 631. Без всякой аутентификаци, подменяет zeroconf/mDNS/DNS-SD.
Red Hat разбирает цепочку шаг за шагом:
- Служба
cups-browsed
включается или запускается вручную. - Атакующий имеет доступ к уязвимому серверу, который:
- Позволяет неограниченный доступ, например к Интернету
- Получает доступ к внутренней сети, где локальные соединения являются доверенными
- Злоумышленник меняет вредоносный IPP-сервер, тем самым делает принтер вредоносным
- Потенциальная жертва пытается выполнить печать на такой принтер
- Злоумышленник выполняет произвольный код на компьютере жертвы
Удивительно, но эта уязвимость существует уже много лет.
Как исправить?
Пока все так страшно, но есть и хорошие новости:
- Если вы используете брандмауэр или маршрутизатор, который блокирует затронутый порт, вы, скорее всего, никогда не были уязвимы к этому
- Команда безопасности Canonical выпустила критические обновления безопасности для затронутых пакетов. Эти обновления распространяются на все поддерживаемые релизы Ubuntu.
Обратите внимание на обновления cups-browsed
, cups-filters
, libcupsfilters
и libppd
, поскольку они исправляют четыре недостатка и несколько ошибок во всех затронутых пакетах.
В то время как информация Canonical обнадеживает, Маргарителли подчеркивает трудности, связанные с тем, чтобы заставить ответственных за затронутые пакеты изначально признать проблему.
Проблема в кодовой базы CUPS серьезная, а подход разработчиков – нет, поэтому для меня это основание, чтобы удалить все службы, бинарные файлы и библиотеки CUPS со всех серверов и никогда больше не использовать UNIX-системы для печати. Я также удалил все сервисы, которые слушают zeroconf, avahi или bonjour.
В любом случае, следует незамедлительно установить патчи безопасности, которые Canonical выпустила (если у вас включены автоматические обновления, они, вероятно, уже установлены), затем перезагрузите машину, чтобы убедиться, что все встало на свои места.
Комментарии (0)