Хакери можуть зв’язати набір вразливостей у кількох компонентах системи друку з відкритим кодом CUPS, щоб віддалено виконувати довільний код Linux на вразливих машинах.
Як повідомляє BleepingComputer, ці недоліки безпеки відстежуються як CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (cups-browsed) і CVE-2024-47177 (cups-filters) і не впливають на системи в конфігурації за замовчуванням.
CUPS (скорочення від Common UNIX Printing System) — це найпоширеніша система друку в системах Linux. Також вона зазвичай підтримується на пристроях, що працюють під керуванням Unix-подібних операційних систем, таких як FreeBSD, NetBSD та OpenBSD і їхніх похідних.
Одним із його компонентів є демон Сups-Вrowsed, який шукає в локальній мережі оголошені мережі або спільні принтери та робить їх доступними для друку на машині. Це подібно до того, як Windows і Mac можуть шукати в мережі віддалені мережеві принтери для друку.
Якщо увімкнути демон Cups-Browsed, якого немає в більшості систем, він слухатиме UDP-порт 631. Також за замовчуванням дозволить віддалені підключення з будь-якого пристрою в мережі для створення нового принтера.
Можна створити зловмисний принтер PostScript Printer Description (PPD), який можна вручну рекламувати для відкритої служби перегляду Cups, що працює на UDP-порті 631.
Це змушує віддалену машину автоматично встановлювати шкідливий принтер і робити його доступним для друку. Якщо користувач цього відкритого сервера друкує на новому принтері, шкідлива команда в PPD буде виконана локально на комп’ютері.
Команда для виконання під час друку додається через фільтр foomatic-rip, який виконує команди на пристрої, щоб завдання друку відтворювалося правильно.
Однак зловмисники ще повинні подолати деякі перешкоди, щоб використати вразливості та фактично досягти віддаленого виконання коду.
Зокрема, цільові системи мають увімкнути демон Cups-Browsed, який зазвичай не увімкнено за замовчуванням, щоб відкривати їхні UDP-порти в мережі. Потім зловмисник повинен обманом змусити користувача друкувати зі шкідливого сервера принтера в його локальній мережі, який раптово з’являється на його машині.
З цих причин Red Hat оцінив недоліки як важливі, а не як критичні.
Водночас тести BleepingComputer показали, що на більшості серверів Linux служба не була увімкнена за замовчуванням, а одна з віртуальних машин Ubuntu була. Інші користувачі також зазначили в Х, що на їхніх пристроях Linux за замовчуванням було увімкнено функцію перегляду.
Поки виправлення ще розробляються, Red Hat ділиться запобіжними заходами, які вимагають від адміністраторів припинити роботу служби Cups-Browsing і запобігти її запуску під час перезавантаження за допомогою таких команд, щоб розірвати ланцюжок експлойтів:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Користувачі Red Hat можуть скористатися і такою командою, щоб дізнатися, чи запущено сups-вrowsed у їхніх системах:
sudo systemctl status cups-browsed
Якщо результат «Активний: неактивний (мертвий)», це означає, що ланцюжок експлойтів зупинено, і система не є вразливою.
Якщо ж результат показує «Запущено» або «Увімкнено», а директива «BrowseRemoteProtocols» містить значення «cups» у файлі конфігурації /etc/cups/cups-browsed.conf, це означає, що система вразлива.
Читайте також на ProIT пояснення структури файлової системи Linux.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!