Уязвимости CUPS позволяют выполнить произвольный код в Linux - «Новости»
- 10:30, 29-сен-2024
- Новости / Преимущества стилей / Изображения / Вёрстка / Текст / Линии и рамки / Статьи об афоризмах
- Катерина
- 0
ИБ-исследователь обнаружил, что при определенных обстоятельствах злоумышленники могут использовать ряд уязвимостей в компонентах принт-сервера CUPS (Common UNIX Printing System), что приведет к удаленному выполнению произвольного кода на уязвимых машинах.
Уязвимости получили идентификаторы CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (cups-browsed) и CVE-2024-47177 (cups-filters), и были обнаружены итальянским ИБ-специалистом Симоне Маргарителли (Simone Margaritelli).
CUPS представляет собой популярный сервер печати для Linux-систем, а также поддерживается на устройствах под управлением Unix-подобных операционных систем, таких как FreeBSD, NetBSD, OpenBSD и так далее.
Корень проблемы кроется в одном из компонентов CUPS — демоне cups-browsed, который ищет в локальной сети сетевые или совместно используемые принтеры и позволяет использовать их для печати. Маргарителли обнаружил, что если демон cups-browsed включен (по умолчанию он отключен в большинстве систем), то он прослушивает UDP-порт 631. Кроме того, по умолчанию он разрешает удаленные подключения с любого устройства в сети для создания нового принтера.
Оказалось, что если атакующий может развернуть собственный IPP-сервер и создать вредоносный PostScript Printer Description (PPD) принтера, который можно вручную прорекламировать для cups-browsed, работающего на UDP-порту 631. В результате удаленная машина автоматически установит вредоносный принтер и сделает его доступным для печати. И если пользователь выполнит печатать на этом новом принтере, вредоносная команда будет выполнена на машине жертвы.
Команда, выполняемая во время печати, добавляется при помощи фильтра foomatic-rip, который выполняет команды на устройстве для корректного отображения задания печати.
Несмотря на то, что речь идет об удаленном выполнении произвольного кода, для успешной реализации такой атаки злоумышленнику придется преодолеть ряд ограничений. Так, на целевых системах должен быть активен демон cups-browsed, что откроет UDP-порты, но демон обычно не включен по умолчанию. Также злоумышленник должен каким-то образом вынудить пользователя воспользоваться печатью с помощью внезапно появившегося в системе вредоносного принт-сервера.
«Это целая цепочка багов, которые основаны на спуфинге принтера в локальной сети, который автоматически добавляется через сетевое обнаружение, если это вообще возможно (обычно не в конфигурации по умолчанию). Затем вводится неизвестная переменная, которая используется для эксплуатации других уязвимостей в CUPS и для выполнения кода, но только при запуске заданий печати, — объясняет CTO компании Sonatype Илкка Турунен (Ilkka Turunen). — Хорошие новости — это RCE, но с несколькими смягчающими обстоятельствами, включая тот факт, что атакующий должен иметь возможность подключиться к компьютеру через UDP (что обычно ограничено для входящего трафика), а служба обычно неактивна по умолчанию. Похоже, что в реальности последствия будут невелики».
Как отмечает издание Bleeping Computer, в ходе тестов удалось обнаружить, что на большинстве Linux-серверов служба действительно не включена по умолчанию, хотя она оказалась активна на одной из проверенных виртуальных машин Ubuntu. Пользователи в соцсетях тоже сообщают, что им удалось обнаружить включенный по умолчанию cups-browsed на некоторых Linux-устройствах.
Так как патчи пока находятся в разработке, разработчики Red Hat уже поделились методами, которые следует использовать для снижения рисков. Так, администраторам рекомендуется остановить работу cups-browsed и запретить запуск службы при перезагрузке:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Также пользователи Red Hat могут использовать следующую команду, чтобы узнать, запущен ли cups-browsed вообще: sudo systemctl status cups-browsed
.
Маргарителли в своей статье советует заблокировать доступ к UDP-порту 631 и рассмотреть возможность блокировки DNS-SD. Дело в том, что если порт 631 недоступен напрямую, злоумышленник может использовать спуфинг zeroconf, mDNS или DNS-SD. Но подробности об этих методах атаки и других проблемах исследователь обещает раскрыть позднее.
Комментарии (0)