При определенных условиях злоумышленники могут использовать набор уязвимостей в нескольких компонентах открытого сервера печати 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, который исполняет команды на устройстве для корректного отображения задания на печать.
Команды, добавленные с помощью фильтра 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: обзоры и обновления
• Производительность GNOME и KDE на Wayland превосходит Xfce и LXQt на Ubuntu 25.04 в играх
• Обновление GE-Proton 9-27 для Linux и Steam Deck: исправления для Ubisoft Connect, Epic Games, Wuthering Waves и Monster Hunter Wilds
• Релиз Linux Lite 7.4: исправления ошибок и новые версии ПО
• Вышло обновление SteamOS 3.6.24 для Steam Deck с исправлениями для Avowed и No Rest for the Wicked
• В KDE исправлены основные сбои в Plasma 6.3.4, количество VHI-багов снижено до нуля
• Обновление CachyOS: Linux для игр получил поддержка видеокарт RDNA4, GeForce RTX 5070 Ti и RTX 5070