При определенных условиях злоумышленники могут использовать набор уязвимостей в нескольких компонентах открытого сервера печати CUPS для удаленного выполнения произвольного кода на уязвимых устройствах.
Уязвимости отслеживаются под идентификаторами:
- CVE-2024-47076 (libcupsfilters)
- CVE-2024-47175 (libppd)
- CVE-2024-47176 (cups-browsed)
- CVE-2024-47177 (cups-filters)
Уязвимости обнаружил Симоне Маргарителли (Simone Margaritelli). Данные уязвимости не затрагивают системы с настройками по умолчанию.
CUPS (Common UNIX Printing System) — самая распространенная система печати в Linux, поддерживаемая и на других Unix-подобных ОС, таких как FreeBSD, NetBSD и OpenBSD.
Один из компонентов системы — демон cups-browsed, который ищет в локальной сети принтеры, доступные для печати, и делает их доступными для системы. Это похоже на то, как Windows и macOS могут находить сетевые принтеры.
Маргарителли обнаружил, что если демон cups-browsed включен (что бывает не на всех системах), то он прослушивает UDP-порт 631 и позволяет удаленным устройствам подключаться к нему для создания новых принтеров.
Исследователь смог создать вредоносный принтер с описанием PostScript Printer Description (PPD), который вручную передавался уязвимой службе cups-browsed, работающей через UDP-порт 631.
Это приводит к тому, что удаленное устройство автоматически устанавливает вредоносный принтер и делает его доступным для печати. Если пользователь на уязвимом сервере отправит задание на печать через этот принтер, вредоносная команда, содержащаяся в файле PPD, будет выполнена на локальном компьютере.
Команда для выполнения добавляется через фильтр foomatic-rip, который исполняет команды на устройстве для корректного отображения задания на печать.

Ограниченное влияние
Хотя речь идет о цепочке для удаленного выполнения кода (RCE), злоумышленникам придется преодолеть несколько препятствий для ее успешной эксплуатации.
Во-первых, на целевой системе должен быть включен демон cups-browsed, который по умолчанию отключен. Во-вторых, злоумышленнику необходимо убедить пользователя печатать через вредоносный принтер, который внезапно появится в его локальной сети.
Илкка Турунен (Ilkka Turunen), технический директор Sonatype, отмечает:
Цепочка ошибок основывается на подмене принтера в вашей локальной сети, который автоматически добавляется через сетевое обнаружение. Затем переменная, которую не проверяют, используется для эксплуатации других уязвимостей системы CUPS, но только когда начинается печать.
Хорошая новость состоит в том, что данная уязвимость удаленного выполнения кода имеет много ограничений: злоумышленнику необходимо подключиться к компьютеру через UDP, который обычно отключен на сетевом уровне, и сам сервис cups-browsed обычно не включен по умолчанию. Кажется, что реальное воздействие довольно ограничено.
По этой причине компания Red Hat оценила данные уязвимости как «важные», а не критические.
Патчи недоступны, но есть меры по снижению риска
Хотя патчи еще находятся в разработке, Red Hat предложила меры по устранению проблемы: администраторы могут остановить службу cups-browsed и отключить ее автозапуск при помощи следующих команд:
sudo systemctl stop cups-browsed sudo systemctl disable cups-browsed
Пользователи Red Hat также могут проверить, работает ли cups-browsed на их системе:
sudo systemctl status cups-browsed
Если в результате выводится Active: inactive (dead), значит, система защищена. Если же служба имеет статус running или enabled, и в конфигурационном файле /etc/cups/cups-browsed.conf указано значение cups для директивы BrowseRemoteProtocols, то система остается уязвимой.
Linux: обзоры и обновления
• Разработка KDE Plasma 6.6: оптимизация пользовательского интерфейса и расширенная поддержка оборудования
• Релиз-кандидат Wine 11.0: исправления для Mass Effect и Photoshop, внедрение TWAINDSM
• Линус Торвальдс в гостях у Linus Tech Tips: ключевые тезисы о ядре Linux, выборе дистрибутива и оборудовании
• Ubuntu Pro приходит в WSL: корпоративные функции Linux теперь доступны пользователям Windows
• Mesa 25.2.8 и 25.3.1 вышли с исправлениями для реализации графических API Vulkan и OpenGL в Linux
• Повышение стабильности ReactOS: устранены причины синих экранов смерти при работе с USB-устройствами