Детали возможной атаки на GNU Savannah, позволявшей скомпрометировать репозитории Bash и Coreutils

Компания Hacktron раскрыла подробности демонстрационной атаки на хостинг свободного кода GNU Savannah, который продолжает использоваться для разработки некоторых инструментов GNU, включая Bash и Coreutils. В результате проведённого эксперимента удалось выполнить код на сервере GNU Savannah, получить на нём права root, заменить SSH-ключи сопровождающего Bash, выявить возможность внесения изменений в основной git-репозиторий проекта Bash и получить доступ к серверу с резервными копиями.

О проведённой тестовой атаке и выявленных проблемах сразу было сообщено администраторам GNU Savannah. Проблемы были устранены в мае. Всего исследователями было выявлено 9 уязвимостей, из которых 2 признаны критическими, а 4 опасными. Первая критическая уязвимости позволяла обойти аутентификацию при обращении к настройкам, доступным только администратору сайта (siteadmin/triggercreation.php).

Вторая критическая уязвимость позволяла выполнить код на сервере через указание специально оформленного email. Проблема была вызвана отсутствием должного экранирования спецсимволов и могла быть эксплуатирована через указание при регистрации email вида «a`touch${IFS}/tmp/savane-rce-proof`@example.com» с последующим нажатием в web-интерфейсе кнопки проверки GPG-ключа (email подставлялся в строку запуска утилиты gpg, вызываемую через PHP-функцию proc_open()).

Добившись выполнения кода с правами web-сервера, исследователи нашли пароль доступа к СУБД в файле конфигурации и изменили в БД права доступа для своего зарегистрированного аккаунта с непривилегированного пользователя на администратора. Права администратора в web-интерфейсе Savannah давали возможность работы под любым пользователем без ввода пароля. Исследователи воспользовались этой возможностью, вошли от имени сопровождающего проект Bash и нашли возможность добавления своего SSH-ключа для подключения к git-репозиторию. В случае добавления ключа появлялась возможность отправки коммитов в Bash от имени сопровождающего.

Права root на сервере были получены через эксплуатацию до этого уже известной уязвимости в ядре Linux, которое не было обновлено на сервере (был установлен дистрибутив Trisquel GNU/Linux 11 на базе
Ubuntu 22.04 с ядром linux-libre 5.15). Для атаки использовалась уязвимость в OverlayFS (CVE-2023-2640). Примечательно, что исправление уязвимости было доступно с 2023 года, но компания Canonical оперативно устранила проблему только в ядрах 5.19 и 6.2, а для ядра 5.15 выпустила патч только 7 мая 2026 года. Получив права root исследователи обнаружили в системе SSH-ключ у пользователя «gnubackup», позволяющий без пароля подключиться к хосту с резервными копиями.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66585